schemas.openapi-flat.json Maven / Gradle / Ivy
{
"otoroshi.models.ElasticAnalyticsConfig" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "null type",
"enum" : [ "elastic", "webhook", "kafka", "pulsar", "file", "mailer", "custom", "console", "metrics" ],
"nullable" : true
},
"sendWorkers" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"applyTemplate" : {
"type" : "boolean",
"description" : "Enable template creation/update"
},
"uris" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"mtlsConfig" : {
"description" : "TLS settings for the http client",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"version" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"maxBulkSize" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Additionnal headers in the http request"
},
"indexSettings" : {
"description" : "Indexation settings",
"properties" : {
"clientSide" : {
"type" : "boolean",
"description" : "Enable index splitting on client side"
},
"numberOfShards" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"numberOfReplicas" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"interval" : {
"description" : "Index splitting interval",
"properties" : { },
"type" : "object"
}
},
"type" : "object"
},
"user" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"index" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"password" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object",
"description" : "Settings for connection to an elastic cluster"
},
"otoroshi.plugins.jobs.kubernetes.KubernetesIngressControllerJob" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.models.NgRouteDataStore" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.models.CorsSettings" : {
"type" : "object",
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"allowCredentials" : {
"type" : "boolean",
"description" : "???"
},
"maxAge" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"allowMethods" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allowHeaders" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"exposeHeaders" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allowOrigin" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.plugins.apikeys.BiscuitConf" : {
"type" : "object",
"description" : "???",
"properties" : {
"privkey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"checks" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"facts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"rules" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.events.SaslConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"username" : {
"type" : "string",
"description" : "SASL username"
},
"password" : {
"type" : "string",
"description" : "SASL password"
},
"mechanism" : {
"type" : "string",
"description" : "SASL login mechanism"
}
}
},
"otoroshi.models.LargeResponseFaultConfig" : {
"type" : "object",
"description" : "Settings for a large response fault (chaos engineering)",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"additionalResponseSize" : {
"type" : "integer",
"format" : "int32",
"description" : "Add n 0 bytes"
}
}
},
"otoroshi.models.MappingSettings" : {
"type" : "object",
"description" : "Settings to transform a jwt token",
"properties" : {
"map" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Change values"
},
"values" : {
"type" : "object",
"description" : "Add values"
},
"remove" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Remove some token claims"
}
}
},
"otoroshi.next.models.NgContextualPlugins" : {
"type" : "object",
"description" : "???",
"properties" : {
"_env" : {
"description" : "???",
"properties" : {
"circuitBeakersHolder" : {
"description" : "???",
"properties" : { },
"type" : "object"
}
},
"type" : "object"
},
"next_plugins_merge" : {
"type" : "boolean",
"description" : "???"
}
}
},
"otoroshi.plugins.jobs.kubernetes.KubernetesEntity" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.ApikeyQuotas" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.plugins.core.apikeys.JwtApikeyExtractor" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.GzipResponseCompressor" : {
"type" : "object",
"description" : "???",
"properties" : {
"compression_level" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"buffer_size" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"chunked_threshold" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"excluded_patterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"white_list" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"black_list" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.models.VerificationSettings" : {
"type" : "object",
"description" : "jwt token verification settings",
"properties" : {
"fields" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Fields validation"
},
"arrayFields" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Fields array validation"
}
}
},
"otoroshi.next.models.NgMinimalRoute" : {
"type" : "object",
"description" : "A route representation with it's minimal attributes",
"properties" : {
"backend_ref" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"frontend" : {
"description" : "The frontend of the route",
"properties" : {
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "the headers that will be matched"
},
"query" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "the query params that will be matched"
},
"domains" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "The domain and path that will be matched"
},
"methods" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "the http methods that will be matched"
},
"exact" : {
"type" : "boolean",
"description" : "Match on exact path ?"
},
"strip_path" : {
"type" : "boolean",
"description" : "Is path stripped from backend request"
}
},
"type" : "object"
},
"override_plugins" : {
"type" : "boolean",
"description" : "Override global plugin list from route composition"
},
"backend" : {
"description" : "The backend of the route",
"properties" : {
"root" : {
"type" : "string",
"description" : "The root path of the backend or the full rewrite path"
},
"targets" : {
"type" : "array",
"items" : {
"properties" : {
"ip_address" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"protocol" : {
"type" : "string",
"enum" : [ "HTTP/1.0", "HTTP/1.1", "HTTP/2.0", "HTTP/3.0" ],
"description" : "Protocol for the target"
},
"predicate" : {
"description" : "Predicate to choose this target",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"dc" : {
"type" : "string",
"description" : "???"
},
"positions" : {
"type" : "array",
"items" : {
"properties" : {
"latitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"longitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"radius" : {
"type" : "number",
"format" : "double",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"provider" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataCenter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"rack" : {
"type" : "string",
"description" : "???"
},
"region" : {
"type" : "string",
"description" : "???"
},
"zone" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"tls_config" : {
"description" : "TLS settings to contact this target",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "Enabled"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
},
"loose" : {
"type" : "boolean",
"description" : "Loose verification"
},
"trust_all" : {
"type" : "boolean",
"description" : "Trust any certificate"
},
"trusted_certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
}
},
"type" : "object"
},
"tls" : {
"type" : "boolean",
"description" : "Does the target uses TLS"
},
"port" : {
"type" : "integer",
"format" : "int32",
"description" : "port of the target"
},
"id" : {
"type" : "string",
"description" : "id of the target"
},
"weight" : {
"type" : "integer",
"format" : "int32",
"description" : "The weight of the target when choosing"
},
"hostname" : {
"type" : "string",
"description" : "hostname of the target"
}
},
"type" : "object"
},
"description" : "The targets of the backend"
},
"load_balancing" : {
"description" : "Loadbalancing config og the backend",
"properties" : {
"type" : {
"type" : "string",
"enum" : [ "BestResponseTime", "IpAddressHash", "Random", "RoundRobin", "Sticky", "WeightedBestResponseTime" ]
},
"ratio" : {
"type" : "number",
"format" : "double"
}
},
"type" : "object"
},
"rewrite" : {
"type" : "boolean",
"description" : "Does the backend performs a full url rewrite ?"
}
},
"type" : "object"
}
}
},
"otoroshi.next.plugins.NgLatencyInjectionFaultConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"from" : {
"type" : "number",
"description" : "???"
},
"to" : {
"type" : "number",
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgCertificateAsApikey" : {
"type" : "object",
"description" : "???",
"properties" : {
"daily_quota" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"monthly_quota" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"read_only" : {
"type" : "boolean",
"description" : "???"
},
"allow_client_id_only" : {
"type" : "boolean",
"description" : "???"
},
"throttling_quota" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"constrained_services_only" : {
"type" : "boolean",
"description" : "???"
}
}
},
"otoroshi.next.plugins.JwtVerification" : {
"type" : "object",
"description" : "???",
"properties" : {
"verifiers" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.plugins.log4j.Log4jExpressionText" : {
"type" : "object",
"description" : "???",
"properties" : {
"value" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgAuthModuleUserExtractorConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"module" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.next.plugins.NgGzipConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"compression_level" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"buffer_size" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"chunked_threshold" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"excluded_patterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"white_list" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"black_list" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.next.plugins.W3CTracingConfigKind" : {
"description" : "Configuration for W3CTracing",
"type" : "string",
"enum" : [ "jaeger", "zipkin", "logger", "noop" ]
},
"otoroshi.next.plugins.TailscaleLocalApiClient" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.JQConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"request" : {
"type" : "string",
"description" : "???"
},
"response" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.models.TeamId" : {
"type" : "string",
"description" : "team id"
},
"otoroshi.next.plugins.NgAllowedMethodsConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"allowed" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"forbidden" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"WebauthnAdminList" : {
"type" : "array",
"items" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of admin",
"enum" : [ "simple", "webauthn" ]
},
"username" : {
"type" : "string",
"description" : "User username"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Entity tags"
},
"label" : {
"type" : "string",
"description" : "User label"
},
"_loc" : {
"description" : "Entity location",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"typ" : {
"description" : "Admin kind",
"type" : "string",
"enum" : [ "SIMPLE", "WEBAUTHN" ]
},
"createdAt" : {
"type" : "number",
"description" : "User creation date"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Entity metadata"
},
"rights" : {
"description" : "User rights",
"properties" : {
"rights" : {
"type" : "array",
"items" : {
"properties" : {
"tenant" : {
"description" : "Access rights on organizations",
"properties" : {
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
}
},
"type" : "object"
},
"teams" : {
"type" : "array",
"items" : {
"properties" : {
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
}
},
"type" : "object"
},
"description" : "Access rights on teams"
}
},
"type" : "object"
},
"description" : "Access rights of a user"
}
},
"type" : "object"
},
"credentials" : {
"type" : "object",
"additionalProperties" : {
"type" : "object"
},
"description" : "User webauthn credentials"
},
"handle" : {
"type" : "string",
"description" : "User webauthn handle"
},
"password" : {
"type" : "string",
"description" : "User password"
}
},
"type" : "object"
}
},
"otoroshi.next.plugins.WasmSink" : {
"type" : "object",
"description" : "???",
"properties" : {
"allowedHosts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"memoryPages" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"allowedPaths" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"instances" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"config" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"authorizations" : {
"description" : "???",
"properties" : {
"proxyStateAccess" : {
"type" : "boolean",
"description" : "???"
},
"httpAccess" : {
"type" : "boolean",
"description" : "???"
},
"globalMapAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"pluginDataStoreAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"pluginMapAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"proxyHttpCallTimeout" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"configurationAccess" : {
"type" : "boolean",
"description" : "???"
},
"globalDataStoreAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
}
},
"type" : "object"
},
"opa" : {
"type" : "boolean",
"description" : "???"
},
"wasi" : {
"type" : "boolean",
"description" : "???"
},
"functionName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.models.RegionMatch" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"region" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object",
"description" : "???"
},
"otoroshi.next.plugins.Cors" : {
"type" : "object",
"description" : "???",
"properties" : {
"allow_credentials" : {
"type" : "boolean",
"description" : "???"
},
"max_age" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"allow_origin" : {
"type" : "string",
"description" : "???"
},
"allow_methods" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"excluded_patterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allow_headers" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"expose_headers" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"ErrorTemplateList" : {
"type" : "array",
"items" : {
"properties" : {
"template50x" : {
"type" : "string",
"description" : "The 50x error html template"
},
"templateMaintenance" : {
"type" : "string",
"description" : "The maintenance html template"
},
"templateBuild" : {
"type" : "string",
"description" : "The build html template"
},
"serviceId" : {
"type" : "string",
"description" : "Service id for this template"
},
"_loc" : {
"description" : "???",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"messages" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Map of messages"
},
"name" : {
"type" : "string",
"description" : "???"
},
"template40x" : {
"type" : "string",
"description" : "The 40x error html template"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"description" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
}
},
"otoroshi.next.plugins.PublicPrivatePaths" : {
"type" : "object",
"description" : "???",
"properties" : {
"strict" : {
"type" : "boolean",
"description" : "???"
},
"public_patterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"private_patterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.auth.GroupRights" : {
"type" : "object",
"description" : "???",
"properties" : {
"userRights" : {
"description" : "???",
"properties" : {
"rights" : {
"type" : "array",
"items" : {
"properties" : {
"tenant" : {
"description" : "Access rights on organizations",
"properties" : {
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
}
},
"type" : "object"
},
"teams" : {
"type" : "array",
"items" : {
"properties" : {
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
}
},
"type" : "object"
},
"description" : "Access rights on teams"
}
},
"type" : "object"
},
"description" : "Access rights of a user"
}
},
"type" : "object"
},
"users" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.plugins.quotas.ServiceQuotasConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"throttlingQuota" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"dailyQuota" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"monthlyQuota" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
}
}
},
"otoroshi.next.plugins.ApikeyCalls" : {
"type" : "object",
"description" : "???",
"properties" : {
"mandatory" : {
"type" : "boolean",
"description" : "???"
},
"extractors" : {
"description" : "???",
"properties" : {
"basic" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"header_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"query_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"custom_headers" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"client_id_header_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"client_secret_header_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"client_id" : {
"description" : "???",
"properties" : {
"header_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"query_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"enabled" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"jwt" : {
"description" : "???",
"properties" : {
"cookie_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"key_pair_signed" : {
"type" : "boolean",
"description" : "???"
},
"query_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"secret_signed" : {
"type" : "boolean",
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"include_request_attrs" : {
"type" : "boolean",
"description" : "???"
},
"header_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
}
},
"type" : "object"
},
"pass_with_user" : {
"type" : "boolean",
"description" : "???"
},
"wipe_backend_request" : {
"type" : "boolean",
"description" : "???"
},
"validate" : {
"type" : "boolean",
"description" : "???"
},
"routing" : {
"description" : "???",
"properties" : {
"none_meta_keys_in" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"all_meta_keys_in" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"all_meta_in" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"none_meta_in" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"one_tag_in" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"one_meta_in" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"all_tags_in" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"one_meta_key_in" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"none_tag_in" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"update_quotas" : {
"type" : "boolean",
"description" : "???"
}
}
},
"otoroshi.script.AccessContext" : {
"type" : "object",
"description" : "???",
"properties" : {
"attrs" : {
"description" : "???",
"properties" : { },
"type" : "object"
},
"config" : {
"type" : "object",
"description" : "???"
},
"descriptor" : {
"description" : "???",
"properties" : {
"buildMode" : {
"type" : "boolean",
"description" : "???"
},
"hosts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"privateApp" : {
"type" : "boolean",
"description" : "???"
},
"localScheme" : {
"type" : "string",
"description" : "???"
},
"authConfigRef" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"issueCertCA" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"root" : {
"type" : "string",
"description" : "???"
},
"name" : {
"type" : "string",
"description" : "???"
},
"additionalHeaders" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"domain" : {
"type" : "string",
"description" : "???"
},
"clientConfig" : {
"description" : "???",
"properties" : {
"connectionTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"useCircuitBreaker" : {
"type" : "boolean",
"description" : "???"
},
"retryInitialDelay" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"cacheConnectionSettings" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"queueSize" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
},
"type" : "object"
},
"proxy" : {
"description" : "???",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"callTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"callAndStreamTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"globalTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"maxErrors" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"retries" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"backoffFactor" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"customTimeouts" : {
"type" : "array",
"items" : {
"properties" : {
"path" : {
"type" : "string",
"description" : "???"
},
"callAndStreamTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"callTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"idleTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"globalTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"connectionTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"idleTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"sampleInterval" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
}
},
"type" : "object"
},
"matchingRoot" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"forceHttps" : {
"type" : "boolean",
"description" : "???"
},
"localHost" : {
"type" : "string",
"description" : "???"
},
"sendOtoroshiHeadersBack" : {
"type" : "boolean",
"description" : "???"
},
"healthCheck" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"url" : {
"type" : "string",
"description" : "???"
},
"timeout" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
},
"type" : "object"
},
"strictlyPrivate" : {
"type" : "boolean",
"description" : "???"
},
"detectApiKeySooner" : {
"type" : "boolean",
"description" : "???"
},
"allowHttp10" : {
"type" : "boolean",
"description" : "???"
},
"subdomain" : {
"type" : "string",
"description" : "???"
},
"paths" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"stripPath" : {
"type" : "boolean",
"description" : "???"
},
"secComAlgoChallengeOtoToBack" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
},
"type" : "object"
},
"apiKeyConstraints" : {
"description" : "???",
"properties" : {
"customHeadersAuth" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"clientIdHeaderName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"clientSecretHeaderName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"routing" : {
"description" : "???",
"properties" : {
"oneTagIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"noneMetaKeysIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"oneMetaIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"oneMetaKeyIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allMetaKeysIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"noneTagIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allTagsIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allMetaIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"noneMetaIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"clientIdAuth" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"headerName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"queryName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"jwtAuth" : {
"description" : "???",
"properties" : {
"keyPairSigned" : {
"type" : "boolean",
"description" : "???"
},
"cookieName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"queryName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"headerName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"secretSigned" : {
"type" : "boolean",
"description" : "???"
},
"maxJwtLifespanSecs" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"includeRequestAttributes" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"basicAuth" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"headerName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"queryName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
}
},
"type" : "object"
},
"env" : {
"type" : "string",
"description" : "???"
},
"xForwardedHeaders" : {
"type" : "boolean",
"description" : "???"
},
"transformerRefs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"gzip" : {
"description" : "???",
"properties" : {
"compressionLevel" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"blackList" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"chunkedThreshold" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"bufferSize" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"whiteList" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"sendInfoToken" : {
"type" : "boolean",
"description" : "???"
},
"tcpUdpTunneling" : {
"type" : "boolean",
"description" : "???"
},
"removeHeadersOut" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"useAkkaHttpClient" : {
"type" : "boolean",
"description" : "???"
},
"maintenanceMode" : {
"type" : "boolean",
"description" : "???"
},
"id" : {
"type" : "string",
"description" : "???"
},
"removeHeadersIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"logAnalyticsOnServer" : {
"type" : "boolean",
"description" : "???"
},
"secComAlgoInfoToken" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
},
"type" : "object"
},
"userFacing" : {
"type" : "boolean",
"description" : "???"
},
"transformerConfig" : {
"type" : "object",
"description" : "???"
},
"clientValidatorRef" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"securityExcludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"ipFiltering" : {
"description" : "???",
"properties" : {
"whitelist" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"blacklist" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"targets" : {
"type" : "array",
"items" : {
"properties" : {
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"host" : {
"type" : "string",
"description" : "???"
},
"weight" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"protocol" : {
"type" : "string",
"enum" : [ "HTTP/1.0", "HTTP/1.1", "HTTP/2.0", "HTTP/3.0" ],
"description" : "???"
},
"predicate" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"dc" : {
"type" : "string",
"description" : "???"
},
"positions" : {
"type" : "array",
"items" : {
"properties" : {
"latitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"longitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"radius" : {
"type" : "number",
"format" : "double",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"provider" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataCenter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"rack" : {
"type" : "string",
"description" : "???"
},
"region" : {
"type" : "string",
"description" : "???"
},
"zone" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"ipAddress" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"mtlsConfig" : {
"description" : "???",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"scheme" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"redirection" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"code" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"to" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"restrictions" : {
"description" : "???",
"properties" : {
"forbidden" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"allowed" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"notFound" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"allowLast" : {
"type" : "boolean",
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"overrideHost" : {
"type" : "boolean",
"description" : "???"
},
"accessValidator" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"refs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"config" : {
"type" : "object",
"description" : "???"
}
},
"type" : "object"
},
"sendStateChallenge" : {
"type" : "boolean",
"description" : "???"
},
"chaosConfig" : {
"description" : "???",
"properties" : {
"badResponsesFaultConfig" : {
"description" : "Settings for bad responses",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"responses" : {
"type" : "array",
"items" : {
"properties" : {
"status" : {
"type" : "integer",
"format" : "int32",
"description" : "The HTTP status for the response"
},
"body" : {
"type" : "string",
"description" : "The body of the HTTP response"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "The HTTP headers of the response"
}
},
"type" : "object"
},
"description" : "The possibles responses"
}
}
},
"largeRequestFaultConfig" : {
"description" : "Settings for large requests",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"additionalRequestSize" : {
"type" : "integer",
"format" : "int32",
"description" : "The size added to the request body in bytes. Added payload will be spaces only."
}
}
},
"largeResponseFaultConfig" : {
"description" : "Settings for large responses",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"additionalResponseSize" : {
"type" : "integer",
"format" : "int32",
"description" : "Add n 0 bytes"
}
}
},
"latencyInjectionFaultConfig" : {
"description" : "Settings for latency injection",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"from" : {
"type" : "number",
"description" : "The start range of latency added to the request"
},
"to" : {
"type" : "number",
"description" : "The end range of latency added to the request"
}
}
},
"enabled" : {
"type" : "boolean",
"description" : "Whether or not this config is enabled"
}
},
"type" : "object"
},
"secComInfoTokenVersion" : {
"description" : "Version of the info token",
"type" : "string",
"enum" : [ "Legacy", "Latest" ]
},
"additionalHeadersOut" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"secComHeaders" : {
"description" : "???",
"properties" : {
"claimRequestName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"stateRequestName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"stateResponseName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"matchingHeaders" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"secComAlgoChallengeBackToOto" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
},
"type" : "object"
},
"secComUseSameAlgo" : {
"type" : "boolean",
"description" : "???"
},
"useNewWSClient" : {
"type" : "boolean",
"description" : "???"
},
"secComExcludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"redirectToLocal" : {
"type" : "boolean",
"description" : "???"
},
"enforceSecureCommunication" : {
"type" : "boolean",
"description" : "???"
},
"missingOnlyHeadersOut" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"secComSettings" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
},
"type" : "object"
},
"handleLegacyDomain" : {
"type" : "boolean",
"description" : "???"
},
"canary" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"traffic" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"targets" : {
"type" : "array",
"items" : {
"properties" : {
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"host" : {
"type" : "string",
"description" : "???"
},
"weight" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"protocol" : {
"type" : "string",
"enum" : [ "HTTP/1.0", "HTTP/1.1", "HTTP/2.0", "HTTP/3.0" ],
"description" : "???"
},
"predicate" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"dc" : {
"type" : "string",
"description" : "???"
},
"positions" : {
"type" : "array",
"items" : {
"properties" : {
"latitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"longitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"radius" : {
"type" : "number",
"format" : "double",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"provider" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataCenter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"rack" : {
"type" : "string",
"description" : "???"
},
"region" : {
"type" : "string",
"description" : "???"
},
"zone" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"ipAddress" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"mtlsConfig" : {
"description" : "???",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"scheme" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"root" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"_loc" : {
"description" : "???",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"plugins" : {
"description" : "???",
"properties" : {
"config" : {
"type" : "object",
"description" : "Plugins configuration"
},
"enabled" : {
"type" : "boolean",
"description" : "Plugins enabled"
},
"excluded" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Excluded paths"
},
"refs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Enabled plugins"
}
},
"type" : "object"
},
"secComTtl" : {
"type" : "number",
"description" : "???"
},
"description" : {
"type" : "string",
"description" : "???"
},
"secComVersion" : {
"description" : "Version of the challenge token",
"type" : "string",
"enum" : [ "V1", "v2" ]
},
"preRouting" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"refs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"config" : {
"type" : "object",
"description" : "???"
}
},
"type" : "object"
},
"groups" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"readOnly" : {
"type" : "boolean",
"description" : "???"
},
"privatePatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"targetsLoadBalancing" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"enum" : [ "BestResponseTime", "IpAddressHash", "Random", "RoundRobin", "Sticky", "WeightedBestResponseTime" ]
},
"ratio" : {
"type" : "number",
"format" : "double"
}
},
"type" : "object"
},
"cors" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"allowCredentials" : {
"type" : "boolean",
"description" : "???"
},
"maxAge" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"allowMethods" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allowHeaders" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"exposeHeaders" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allowOrigin" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"publicPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"api" : {
"description" : "???",
"properties" : {
"exposeApi" : {
"type" : "boolean",
"description" : "???"
},
"openApiDescriptorUrl" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"missingOnlyHeadersIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"issueCert" : {
"type" : "boolean",
"description" : "???"
},
"headersVerification" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"jwtVerifier" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of verifier",
"enum" : [ "global", "local", "ref" ]
},
"desc" : {
"type" : "string",
"description" : "Verifier description"
},
"name" : {
"type" : "string",
"description" : "Verifier name"
},
"strict" : {
"type" : "boolean",
"description" : "???"
},
"source" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "name" ]
}, {
"required" : [ "type", "name", "remove" ]
}, {
"required" : [ "type", "name" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of location",
"enum" : [ "InQueryParam", "InHeader", "InCookie" ]
},
"name" : {
"type" : "string",
"description" : "Query param name"
},
"remove" : {
"type" : "string",
"description" : "Remove from value"
}
}
},
"algoSettings" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
},
"type" : "object"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Entity tags"
},
"id" : {
"type" : "string",
"description" : "Verifier id"
},
"_loc" : {
"description" : "Entity location",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"strategy" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "strict", "token", "verificationSettings" ]
}, {
"required" : [ "type", "verificationSettings" ]
}, {
"required" : [ "type", "verificationSettings", "algoSettings" ]
}, {
"required" : [ "type", "verificationSettings", "transformSettings", "algoSettings" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of strategy",
"enum" : [ "PassThrough", "Sign", "Transform", "DefaultToken" ]
},
"strict" : {
"type" : "boolean",
"description" : "If the token already exists in the request, then fail"
},
"token" : {
"type" : "object",
"description" : "The default token"
},
"verificationSettings" : {
"description" : "Verification settings",
"properties" : {
"fields" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Fields validation"
},
"arrayFields" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Fields array validation"
}
},
"type" : "object"
},
"algoSettings" : {
"description" : "Algorithm settings for re-signing token",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "size", "publicKey", "privateKey" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "secret", "base64" ]
}, {
"required" : [ "type", "url", "tlsConfig", "kty", "proxy", "headers", "ttl", "timeout" ]
}, {
"required" : [ "type", "onlyExposedCerts" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "publicKey", "privateKey" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
}
},
"transformSettings" : {
"description" : "Transformation settings",
"properties" : {
"location" : {
"description" : "Location of the token",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of location",
"enum" : [ "InQueryParam", "InHeader", "InCookie" ]
},
"name" : {
"type" : "string",
"description" : "Query param name"
},
"remove" : {
"type" : "string",
"description" : "Remove from value"
}
},
"type" : "object"
},
"mappingSettings" : {
"description" : "Token mapping settings",
"properties" : {
"map" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Change values"
},
"values" : {
"type" : "object",
"description" : "Add values"
},
"remove" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Remove some token claims"
}
},
"type" : "object"
}
},
"type" : "object"
}
}
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Entity metadata"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"ids" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"letsEncrypt" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"index" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"globalConfig" : {
"type" : "object",
"description" : "???"
},
"apikey" : {
"description" : "???",
"type" : "object",
"properties" : {
"dailyQuota" : {
"type" : "integer",
"format" : "int64",
"description" : "Authorized number of calls per day"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Bunch of metadata for the key"
},
"throttlingQuota" : {
"type" : "integer",
"format" : "int64",
"description" : "Authorized number of calls per second, measured on 10 seconds"
},
"constrainedServicesOnly" : {
"type" : "boolean",
"description" : "This apikey can only be used on services that constrained their apikey routing"
},
"allowClientIdOnly" : {
"type" : "boolean",
"description" : "This apikey can be used juste with the client_id value"
},
"_loc" : {
"description" : "The location of the apikey",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"restrictions" : {
"description" : "Apikey restrictions settings",
"properties" : {
"forbidden" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"allowed" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"notFound" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"allowLast" : {
"type" : "boolean",
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Apikey tags"
},
"enabled" : {
"type" : "boolean",
"description" : "Whether or not the key is enabled. If disabled, resources won't be available to calls using this key"
},
"readOnly" : {
"type" : "boolean",
"description" : "The apikey only allow access for GET, HEAD and OPTIONS verbs"
},
"clientSecret" : {
"type" : "string",
"description" : "The secret of the Api Key. Usually 64 random alpha numerical characters, but can be anything"
},
"validUntil" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"clientName" : {
"type" : "string",
"description" : "The name of the api key, for humans ;-)"
},
"monthlyQuota" : {
"type" : "integer",
"format" : "int64",
"description" : "Authorized number of calls per month"
},
"description" : {
"type" : "string",
"description" : "Description of this apikey"
},
"rotation" : {
"description" : "Apikey rotation settings",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "Rotation enabled"
},
"rotationEvery" : {
"type" : "integer",
"format" : "int64",
"description" : "Rotate every n hours"
},
"gracePeriod" : {
"type" : "integer",
"format" : "int64",
"description" : "period (in hours) during which both secrets works"
},
"nextSecret" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"authorizedEntities" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "The group/service ids (prefixed by group_ or service_ on which the key is authorized"
},
"clientId" : {
"type" : "string",
"description" : "The unique id of the Api Key. Usually 16 random alpha numerical characters, but can be anything"
}
}
},
"snowflake" : {
"type" : "string",
"description" : "???"
},
"user" : {
"description" : "???",
"type" : "object",
"properties" : {
"realm" : {
"type" : "string",
"description" : "Session realm name"
},
"token" : {
"type" : "object",
"description" : "Session tokens (from OAuth)"
},
"expiredAt" : {
"type" : "number",
"description" : "Session expiration date"
},
"profile" : {
"type" : "object",
"description" : "Session user profile"
},
"lastRefresh" : {
"type" : "number",
"description" : "Session last refresh (if OAuth refresh_token supported)"
},
"randomId" : {
"type" : "string",
"description" : "Session random id"
},
"email" : {
"type" : "string",
"description" : "Session user email"
},
"createdAt" : {
"type" : "number",
"description" : "Creation date of the session"
},
"_loc" : {
"description" : "Entity location",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"authConfigId" : {
"type" : "string",
"description" : "Auth module id that created the session"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Entity tags"
},
"name" : {
"type" : "string",
"description" : "Entity name"
},
"otoroshiData" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Entity metadata"
}
}
}
}
},
"otoroshi.greenscore.SectionId" : {
"type" : "object",
"description" : "???",
"properties" : {
"value" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.wasm.WasmConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"allowedHosts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"memoryPages" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"allowedPaths" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"instances" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"config" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"authorizations" : {
"description" : "???",
"properties" : {
"proxyStateAccess" : {
"type" : "boolean",
"description" : "???"
},
"httpAccess" : {
"type" : "boolean",
"description" : "???"
},
"globalMapAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"pluginDataStoreAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"pluginMapAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"proxyHttpCallTimeout" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"configurationAccess" : {
"type" : "boolean",
"description" : "???"
},
"globalDataStoreAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
}
},
"type" : "object"
},
"opa" : {
"type" : "boolean",
"description" : "???"
},
"wasi" : {
"type" : "boolean",
"description" : "???"
},
"functionName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.next.plugins.JQResponseConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"filter" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.utils.http.MtlsConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgClientCertChainHeader" : {
"type" : "object",
"description" : "???",
"properties" : {
"dns_header_name" : {
"type" : "string",
"description" : "???"
},
"pem_header_name" : {
"type" : "string",
"description" : "???"
},
"send_pem" : {
"type" : "boolean",
"description" : "???"
},
"send_chain" : {
"type" : "boolean",
"description" : "???"
},
"send_dns" : {
"type" : "boolean",
"description" : "???"
},
"chain_header_name" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.next.plugins.JwtSigner" : {
"type" : "object",
"description" : "???",
"properties" : {
"verifier" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"replace_if_present" : {
"type" : "boolean",
"description" : "???"
},
"fail_if_present" : {
"type" : "boolean",
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgClientCredentialsConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"default_key_pair" : {
"type" : "string",
"description" : "???"
},
"expiration" : {
"type" : "number",
"description" : "???"
},
"secure" : {
"type" : "boolean",
"description" : "???"
},
"biscuit" : {
"description" : "???",
"type" : "object",
"properties" : {
"privkey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"checks" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"facts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"rules" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"domain" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.plugins.geoloc.IpStackGeolocationInfoExtractor" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.plugins.metrics.PrometheusServiceMetrics" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.NgHtmlPatcher" : {
"type" : "object",
"description" : "???",
"properties" : {
"append_head" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"append_body" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.plugins.jobs.kubernetes.KubernetesClient" : {
"type" : "object",
"description" : "???",
"properties" : {
"config" : {
"description" : "???",
"properties" : {
"endpoint" : {
"type" : "string",
"description" : "???"
},
"templates" : {
"type" : "object",
"description" : "???"
},
"token" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"restartDependantDeployments" : {
"type" : "boolean",
"description" : "???"
},
"watchGracePeriodSeconds" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"connectionTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"crds" : {
"type" : "boolean",
"description" : "???"
},
"watch" : {
"type" : "boolean",
"description" : "???"
},
"labels" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"openshiftDnsOperatorCoreDnsName" : {
"type" : "string",
"description" : "???"
},
"syncIntervalSeconds" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"kubeDnsOperatorCoreDnsName" : {
"type" : "string",
"description" : "???"
},
"defaultGroup" : {
"type" : "string",
"description" : "???"
},
"kubeDnsOperatorCoreDnsNamespace" : {
"type" : "string",
"description" : "???"
},
"triggerKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"otoroshiNamespace" : {
"type" : "string",
"description" : "???"
},
"watchTimeoutSeconds" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"openshiftDnsOperatorCleanupDomains" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"namespaces" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"openshiftDnsOperatorCoreDnsPort" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"coreDnsEnv" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"triggerPath" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"image" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"coreDnsConfigMapName" : {
"type" : "string",
"description" : "???"
},
"clusterDomain" : {
"type" : "string",
"description" : "???"
},
"idleTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"caCert" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"trust" : {
"type" : "boolean",
"description" : "???"
},
"ingressClasses" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"userPassword" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"syncDaikokuApikeysOnly" : {
"type" : "boolean",
"description" : "???"
},
"openshiftDnsOperatorCleanup" : {
"type" : "boolean",
"description" : "???"
},
"kubeSystemNamespace" : {
"type" : "string",
"description" : "???"
},
"ingressEndpointIp" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"namespacesLabels" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"openshiftDnsOperatorCleanupNames" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"kubeDnsOperatorCoreDnsPort" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"mutatingWebhookName" : {
"type" : "string",
"description" : "???"
},
"kubeLeader" : {
"type" : "boolean",
"description" : "???"
},
"ingressEndpointHostname" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"openshiftDnsOperatorIntegration" : {
"type" : "boolean",
"description" : "???"
},
"validatingWebhookName" : {
"type" : "string",
"description" : "???"
},
"coreDnsDeploymentName" : {
"type" : "string",
"description" : "???"
},
"ingresses" : {
"type" : "boolean",
"description" : "???"
},
"useProxyState" : {
"type" : "boolean",
"description" : "???"
},
"coreDnsIntegrationDryRun" : {
"type" : "boolean",
"description" : "???"
},
"ingressEndpointPublishedService" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"coreDnsAzure" : {
"type" : "boolean",
"description" : "???"
},
"corednsPort" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"coreDnsIntegration" : {
"type" : "boolean",
"description" : "???"
},
"otoroshiServiceName" : {
"type" : "string",
"description" : "???"
},
"meshDomain" : {
"type" : "string",
"description" : "???"
},
"kubeDnsOperatorIntegration" : {
"type" : "boolean",
"description" : "???"
},
"triggerHost" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"openshiftDnsOperatorCoreDnsNamespace" : {
"type" : "string",
"description" : "???"
},
"callAndStreamTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
}
},
"type" : "object"
},
"env" : {
"description" : "???",
"properties" : {
"circuitBeakersHolder" : {
"description" : "???",
"properties" : { },
"type" : "object"
}
},
"type" : "object"
}
}
},
"otoroshi.models.RefJwtVerifier" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of verifier",
"enum" : [ "global", "local", "ref" ]
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"ids" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object",
"description" : "???"
},
"otoroshi.next.plugins.ViolationsException" : {
"type" : "object",
"description" : "???",
"properties" : {
"errors" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"TokenResponse" : {
"type" : "object",
"description" : "User login token response",
"properties" : {
"valid" : {
"type" : "string"
}
}
},
"otoroshi.next.plugins.AuthModule" : {
"type" : "object",
"description" : "???",
"properties" : {
"module" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"pass_with_apikey" : {
"type" : "boolean",
"description" : "???"
}
}
},
"otoroshi.plugins.clientcert.HasClientCertValidator" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.models.WasmPlugin" : {
"type" : "object",
"description" : "???",
"properties" : {
"_loc" : {
"description" : "???",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"name" : {
"type" : "string",
"description" : "???"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"steps" : {
"type" : "array",
"items" : {
"properties" : { },
"type" : "object"
},
"description" : "???"
},
"id" : {
"type" : "string",
"description" : "???"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"description" : {
"type" : "string",
"description" : "???"
},
"config" : {
"description" : "???",
"properties" : {
"allowedHosts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"memoryPages" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"allowedPaths" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"instances" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"config" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"authorizations" : {
"description" : "???",
"properties" : {
"proxyStateAccess" : {
"type" : "boolean",
"description" : "???"
},
"httpAccess" : {
"type" : "boolean",
"description" : "???"
},
"globalMapAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"pluginDataStoreAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"pluginMapAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"proxyHttpCallTimeout" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"configurationAccess" : {
"type" : "boolean",
"description" : "???"
},
"globalDataStoreAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
}
},
"type" : "object"
},
"opa" : {
"type" : "boolean",
"description" : "???"
},
"wasi" : {
"type" : "boolean",
"description" : "???"
},
"functionName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
}
}
},
"ScriptsList" : {
"type" : "array",
"items" : {
"properties" : {
"name" : {
"type" : "string",
"description" : "The name of the script"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Entity metadata"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Entity tags"
},
"_loc" : {
"description" : "Entity location",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"desc" : {
"type" : "string",
"description" : "The description of the script"
},
"code" : {
"type" : "string",
"description" : "The code of the script"
},
"id" : {
"type" : "string",
"description" : "The id of the script"
},
"type" : {
"description" : "Plugin kind",
"type" : "string",
"enum" : [ "app", "transformer", "validator", "preroute", "sink", "listener", "job", "exporter" ]
}
},
"type" : "object"
}
},
"otoroshi.models.WeightedBestResponseTime" : {
"type" : "object",
"description" : "???",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "???"
}
}
},
"otoroshi.next.plugins.TailscaleStatusPeer" : {
"type" : "object",
"description" : "???",
"properties" : {
"raw" : {
"type" : "object",
"description" : "???"
}
}
},
"otoroshi.next.plugins.BodyHelper" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.AdditionalHeadersIn" : {
"type" : "object",
"description" : "???",
"properties" : {
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.next.models.NgRouteComposition" : {
"type" : "object",
"description" : "???",
"properties" : {
"capture" : {
"type" : "boolean",
"description" : "???"
},
"id" : {
"type" : "string",
"description" : "???"
},
"debug_flow" : {
"type" : "boolean",
"description" : "???"
},
"routes" : {
"type" : "array",
"items" : {
"properties" : {
"backend_ref" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"frontend" : {
"description" : "The frontend of the route",
"properties" : {
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "the headers that will be matched"
},
"query" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "the query params that will be matched"
},
"domains" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "The domain and path that will be matched"
},
"methods" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "the http methods that will be matched"
},
"exact" : {
"type" : "boolean",
"description" : "Match on exact path ?"
},
"strip_path" : {
"type" : "boolean",
"description" : "Is path stripped from backend request"
}
},
"type" : "object"
},
"override_plugins" : {
"type" : "boolean",
"description" : "Override global plugin list from route composition"
},
"backend" : {
"description" : "The backend of the route",
"properties" : {
"root" : {
"type" : "string",
"description" : "The root path of the backend or the full rewrite path"
},
"targets" : {
"type" : "array",
"items" : {
"properties" : {
"ip_address" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"protocol" : {
"type" : "string",
"enum" : [ "HTTP/1.0", "HTTP/1.1", "HTTP/2.0", "HTTP/3.0" ],
"description" : "Protocol for the target"
},
"predicate" : {
"description" : "Predicate to choose this target",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"dc" : {
"type" : "string",
"description" : "???"
},
"positions" : {
"type" : "array",
"items" : {
"properties" : {
"latitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"longitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"radius" : {
"type" : "number",
"format" : "double",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"provider" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataCenter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"rack" : {
"type" : "string",
"description" : "???"
},
"region" : {
"type" : "string",
"description" : "???"
},
"zone" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"tls_config" : {
"description" : "TLS settings to contact this target",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "Enabled"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
},
"loose" : {
"type" : "boolean",
"description" : "Loose verification"
},
"trust_all" : {
"type" : "boolean",
"description" : "Trust any certificate"
},
"trusted_certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
}
},
"type" : "object"
},
"tls" : {
"type" : "boolean",
"description" : "Does the target uses TLS"
},
"port" : {
"type" : "integer",
"format" : "int32",
"description" : "port of the target"
},
"id" : {
"type" : "string",
"description" : "id of the target"
},
"weight" : {
"type" : "integer",
"format" : "int32",
"description" : "The weight of the target when choosing"
},
"hostname" : {
"type" : "string",
"description" : "hostname of the target"
}
},
"type" : "object"
},
"description" : "The targets of the backend"
},
"load_balancing" : {
"description" : "Loadbalancing config og the backend",
"properties" : {
"type" : {
"type" : "string",
"enum" : [ "BestResponseTime", "IpAddressHash", "Random", "RoundRobin", "Sticky", "WeightedBestResponseTime" ]
},
"ratio" : {
"type" : "number",
"format" : "double"
}
},
"type" : "object"
},
"rewrite" : {
"type" : "boolean",
"description" : "Does the backend performs a full url rewrite ?"
}
},
"type" : "object"
}
},
"type" : "object"
},
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"description" : {
"type" : "string",
"description" : "???"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"export_reporting" : {
"type" : "boolean",
"description" : "???"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"name" : {
"type" : "string",
"description" : "???"
},
"_loc" : {
"description" : "???",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"client" : {
"description" : "???",
"properties" : {
"idle_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout on idle connection"
},
"sample_interval" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify the sliding window time for the circuit breaker in milliseconds, after this time, error count will be reseted"
},
"cache_connection_settings" : {
"description" : "Cached connection settings",
"properties" : {
"queue_size" : {
"type" : "integer",
"format" : "int32",
"description" : "How much request can be queue before dropping it"
},
"enabled" : {
"type" : "boolean",
"description" : "Is cached connection enabled"
}
},
"type" : "object"
},
"call_and_stream_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (hard timeout, connection will be closed after that duration)"
},
"custom_timeouts" : {
"type" : "array",
"items" : {
"properties" : {
"connection_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout at connection"
},
"call_and_stream_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (hard timeout, connection will be closed after that duration)"
},
"path" : {
"type" : "string",
"description" : "path on which this configuration works"
},
"call_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (soft timeout as it's enforced by the circuit breaker)"
},
"idle_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout on idle connection"
},
"global_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long the global call (with retries) should last at most in milliseconds"
}
},
"type" : "object"
},
"description" : "Custom timeouts per path"
},
"connection_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout at connection"
},
"call_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (soft timeout as it's enforced by the circuit breaker)"
},
"global_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long the global call (with retries) should last at most in milliseconds"
},
"retry_initial_delay" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify the delay between two retries. Each retry, the delay is multiplied by the backoff factor"
},
"backoff_factor" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify the factor to multiply the delay for each retry"
},
"proxy" : {
"description" : "Web proxy settings for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"retries" : {
"type" : "integer",
"format" : "int32",
"description" : "Specify how many times the client will try to fetch the result of the request after an error before giving up."
},
"max_errors" : {
"type" : "integer",
"format" : "int32",
"description" : "Specify how many errors can pass before opening the circuit breaker"
}
},
"type" : "object"
},
"groups" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.next.plugins.OIDCIDTokenHeader" : {
"type" : "object",
"description" : "???",
"properties" : {
"send" : {
"type" : "boolean",
"description" : "???"
},
"name" : {
"type" : "string",
"description" : "???"
},
"header_name" : {
"type" : "string",
"description" : "???"
},
"jwt" : {
"type" : "boolean",
"description" : "???"
}
}
},
"LetsEncryptCertBody" : {
"type" : "object",
"description" : "PEM encoded certificate"
},
"otoroshi.greenscore.RouteScreenScore" : {
"type" : "object",
"description" : "???",
"properties" : {
"routeId" : {
"type" : "string",
"description" : "???"
},
"rulesConfig" : {
"description" : "???",
"properties" : {
"sections" : {
"type" : "array",
"items" : {
"properties" : {
"id" : {
"description" : "???",
"properties" : {
"value" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"rules" : {
"type" : "array",
"items" : {
"properties" : {
"sectionWeight" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"advice" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"weight" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"id" : {
"description" : "???",
"properties" : {
"value" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"thresholds" : {
"description" : "???",
"properties" : {
"plugins" : {
"description" : "???",
"properties" : {
"excellent" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"sufficient" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"poor" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
},
"type" : "object"
},
"dataOut" : {
"description" : "???",
"properties" : {
"excellent" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"sufficient" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"poor" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
},
"type" : "object"
},
"headersOut" : {
"description" : "???",
"properties" : {
"excellent" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"sufficient" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"poor" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
},
"type" : "object"
}
},
"type" : "object"
}
},
"type" : "object"
}
}
},
"otoroshi.next.plugins.OIDCHeaders" : {
"type" : "object",
"description" : "???",
"properties" : {
"profile" : {
"description" : "???",
"properties" : {
"send" : {
"type" : "boolean",
"description" : "???"
},
"header_name" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"idtoken" : {
"description" : "???",
"properties" : {
"send" : {
"type" : "boolean",
"description" : "???"
},
"name" : {
"type" : "string",
"description" : "???"
},
"header_name" : {
"type" : "string",
"description" : "???"
},
"jwt" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"access_token" : {
"description" : "???",
"properties" : {
"send" : {
"type" : "boolean",
"description" : "???"
},
"name" : {
"type" : "string",
"description" : "???"
},
"header_name" : {
"type" : "string",
"description" : "???"
},
"jwt" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
}
}
},
"otoroshi.controllers.ServiceLike" : {
"type" : "object",
"description" : "???",
"properties" : {
"entity" : {
"description" : "???",
"properties" : { },
"type" : "object"
},
"groups" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.script.PreRoutingContext" : {
"type" : "object",
"description" : "???",
"properties" : {
"globalConfig" : {
"type" : "object",
"description" : "???"
},
"snowflake" : {
"type" : "string",
"description" : "???"
},
"descriptor" : {
"description" : "???",
"properties" : {
"buildMode" : {
"type" : "boolean",
"description" : "???"
},
"hosts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"privateApp" : {
"type" : "boolean",
"description" : "???"
},
"localScheme" : {
"type" : "string",
"description" : "???"
},
"authConfigRef" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"issueCertCA" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"root" : {
"type" : "string",
"description" : "???"
},
"name" : {
"type" : "string",
"description" : "???"
},
"additionalHeaders" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"domain" : {
"type" : "string",
"description" : "???"
},
"clientConfig" : {
"description" : "???",
"properties" : {
"connectionTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"useCircuitBreaker" : {
"type" : "boolean",
"description" : "???"
},
"retryInitialDelay" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"cacheConnectionSettings" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"queueSize" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
},
"type" : "object"
},
"proxy" : {
"description" : "???",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"callTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"callAndStreamTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"globalTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"maxErrors" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"retries" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"backoffFactor" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"customTimeouts" : {
"type" : "array",
"items" : {
"properties" : {
"path" : {
"type" : "string",
"description" : "???"
},
"callAndStreamTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"callTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"idleTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"globalTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"connectionTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"idleTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"sampleInterval" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
}
},
"type" : "object"
},
"matchingRoot" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"forceHttps" : {
"type" : "boolean",
"description" : "???"
},
"localHost" : {
"type" : "string",
"description" : "???"
},
"sendOtoroshiHeadersBack" : {
"type" : "boolean",
"description" : "???"
},
"healthCheck" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"url" : {
"type" : "string",
"description" : "???"
},
"timeout" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
},
"type" : "object"
},
"strictlyPrivate" : {
"type" : "boolean",
"description" : "???"
},
"detectApiKeySooner" : {
"type" : "boolean",
"description" : "???"
},
"allowHttp10" : {
"type" : "boolean",
"description" : "???"
},
"subdomain" : {
"type" : "string",
"description" : "???"
},
"paths" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"stripPath" : {
"type" : "boolean",
"description" : "???"
},
"secComAlgoChallengeOtoToBack" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
},
"type" : "object"
},
"apiKeyConstraints" : {
"description" : "???",
"properties" : {
"customHeadersAuth" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"clientIdHeaderName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"clientSecretHeaderName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"routing" : {
"description" : "???",
"properties" : {
"oneTagIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"noneMetaKeysIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"oneMetaIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"oneMetaKeyIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allMetaKeysIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"noneTagIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allTagsIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allMetaIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"noneMetaIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"clientIdAuth" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"headerName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"queryName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"jwtAuth" : {
"description" : "???",
"properties" : {
"keyPairSigned" : {
"type" : "boolean",
"description" : "???"
},
"cookieName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"queryName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"headerName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"secretSigned" : {
"type" : "boolean",
"description" : "???"
},
"maxJwtLifespanSecs" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"includeRequestAttributes" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"basicAuth" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"headerName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"queryName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
}
},
"type" : "object"
},
"env" : {
"type" : "string",
"description" : "???"
},
"xForwardedHeaders" : {
"type" : "boolean",
"description" : "???"
},
"transformerRefs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"gzip" : {
"description" : "???",
"properties" : {
"compressionLevel" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"blackList" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"chunkedThreshold" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"bufferSize" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"whiteList" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"sendInfoToken" : {
"type" : "boolean",
"description" : "???"
},
"tcpUdpTunneling" : {
"type" : "boolean",
"description" : "???"
},
"removeHeadersOut" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"useAkkaHttpClient" : {
"type" : "boolean",
"description" : "???"
},
"maintenanceMode" : {
"type" : "boolean",
"description" : "???"
},
"id" : {
"type" : "string",
"description" : "???"
},
"removeHeadersIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"logAnalyticsOnServer" : {
"type" : "boolean",
"description" : "???"
},
"secComAlgoInfoToken" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
},
"type" : "object"
},
"userFacing" : {
"type" : "boolean",
"description" : "???"
},
"transformerConfig" : {
"type" : "object",
"description" : "???"
},
"clientValidatorRef" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"securityExcludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"ipFiltering" : {
"description" : "???",
"properties" : {
"whitelist" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"blacklist" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"targets" : {
"type" : "array",
"items" : {
"properties" : {
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"host" : {
"type" : "string",
"description" : "???"
},
"weight" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"protocol" : {
"type" : "string",
"enum" : [ "HTTP/1.0", "HTTP/1.1", "HTTP/2.0", "HTTP/3.0" ],
"description" : "???"
},
"predicate" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"dc" : {
"type" : "string",
"description" : "???"
},
"positions" : {
"type" : "array",
"items" : {
"properties" : {
"latitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"longitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"radius" : {
"type" : "number",
"format" : "double",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"provider" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataCenter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"rack" : {
"type" : "string",
"description" : "???"
},
"region" : {
"type" : "string",
"description" : "???"
},
"zone" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"ipAddress" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"mtlsConfig" : {
"description" : "???",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"scheme" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"redirection" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"code" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"to" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"restrictions" : {
"description" : "???",
"properties" : {
"forbidden" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"allowed" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"notFound" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"allowLast" : {
"type" : "boolean",
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"overrideHost" : {
"type" : "boolean",
"description" : "???"
},
"accessValidator" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"refs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"config" : {
"type" : "object",
"description" : "???"
}
},
"type" : "object"
},
"sendStateChallenge" : {
"type" : "boolean",
"description" : "???"
},
"chaosConfig" : {
"description" : "???",
"properties" : {
"badResponsesFaultConfig" : {
"description" : "Settings for bad responses",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"responses" : {
"type" : "array",
"items" : {
"properties" : {
"status" : {
"type" : "integer",
"format" : "int32",
"description" : "The HTTP status for the response"
},
"body" : {
"type" : "string",
"description" : "The body of the HTTP response"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "The HTTP headers of the response"
}
},
"type" : "object"
},
"description" : "The possibles responses"
}
}
},
"largeRequestFaultConfig" : {
"description" : "Settings for large requests",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"additionalRequestSize" : {
"type" : "integer",
"format" : "int32",
"description" : "The size added to the request body in bytes. Added payload will be spaces only."
}
}
},
"largeResponseFaultConfig" : {
"description" : "Settings for large responses",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"additionalResponseSize" : {
"type" : "integer",
"format" : "int32",
"description" : "Add n 0 bytes"
}
}
},
"latencyInjectionFaultConfig" : {
"description" : "Settings for latency injection",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"from" : {
"type" : "number",
"description" : "The start range of latency added to the request"
},
"to" : {
"type" : "number",
"description" : "The end range of latency added to the request"
}
}
},
"enabled" : {
"type" : "boolean",
"description" : "Whether or not this config is enabled"
}
},
"type" : "object"
},
"secComInfoTokenVersion" : {
"description" : "Version of the info token",
"type" : "string",
"enum" : [ "Legacy", "Latest" ]
},
"additionalHeadersOut" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"secComHeaders" : {
"description" : "???",
"properties" : {
"claimRequestName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"stateRequestName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"stateResponseName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"matchingHeaders" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"secComAlgoChallengeBackToOto" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
},
"type" : "object"
},
"secComUseSameAlgo" : {
"type" : "boolean",
"description" : "???"
},
"useNewWSClient" : {
"type" : "boolean",
"description" : "???"
},
"secComExcludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"redirectToLocal" : {
"type" : "boolean",
"description" : "???"
},
"enforceSecureCommunication" : {
"type" : "boolean",
"description" : "???"
},
"missingOnlyHeadersOut" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"secComSettings" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
},
"type" : "object"
},
"handleLegacyDomain" : {
"type" : "boolean",
"description" : "???"
},
"canary" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"traffic" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"targets" : {
"type" : "array",
"items" : {
"properties" : {
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"host" : {
"type" : "string",
"description" : "???"
},
"weight" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"protocol" : {
"type" : "string",
"enum" : [ "HTTP/1.0", "HTTP/1.1", "HTTP/2.0", "HTTP/3.0" ],
"description" : "???"
},
"predicate" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"dc" : {
"type" : "string",
"description" : "???"
},
"positions" : {
"type" : "array",
"items" : {
"properties" : {
"latitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"longitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"radius" : {
"type" : "number",
"format" : "double",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"provider" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataCenter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"rack" : {
"type" : "string",
"description" : "???"
},
"region" : {
"type" : "string",
"description" : "???"
},
"zone" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"ipAddress" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"mtlsConfig" : {
"description" : "???",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"scheme" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"root" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"_loc" : {
"description" : "???",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"plugins" : {
"description" : "???",
"properties" : {
"config" : {
"type" : "object",
"description" : "Plugins configuration"
},
"enabled" : {
"type" : "boolean",
"description" : "Plugins enabled"
},
"excluded" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Excluded paths"
},
"refs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Enabled plugins"
}
},
"type" : "object"
},
"secComTtl" : {
"type" : "number",
"description" : "???"
},
"description" : {
"type" : "string",
"description" : "???"
},
"secComVersion" : {
"description" : "Version of the challenge token",
"type" : "string",
"enum" : [ "V1", "v2" ]
},
"preRouting" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"refs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"config" : {
"type" : "object",
"description" : "???"
}
},
"type" : "object"
},
"groups" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"readOnly" : {
"type" : "boolean",
"description" : "???"
},
"privatePatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"targetsLoadBalancing" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"enum" : [ "BestResponseTime", "IpAddressHash", "Random", "RoundRobin", "Sticky", "WeightedBestResponseTime" ]
},
"ratio" : {
"type" : "number",
"format" : "double"
}
},
"type" : "object"
},
"cors" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"allowCredentials" : {
"type" : "boolean",
"description" : "???"
},
"maxAge" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"allowMethods" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allowHeaders" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"exposeHeaders" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allowOrigin" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"publicPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"api" : {
"description" : "???",
"properties" : {
"exposeApi" : {
"type" : "boolean",
"description" : "???"
},
"openApiDescriptorUrl" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"missingOnlyHeadersIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"issueCert" : {
"type" : "boolean",
"description" : "???"
},
"headersVerification" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"jwtVerifier" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of verifier",
"enum" : [ "global", "local", "ref" ]
},
"desc" : {
"type" : "string",
"description" : "Verifier description"
},
"name" : {
"type" : "string",
"description" : "Verifier name"
},
"strict" : {
"type" : "boolean",
"description" : "???"
},
"source" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "name" ]
}, {
"required" : [ "type", "name", "remove" ]
}, {
"required" : [ "type", "name" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of location",
"enum" : [ "InQueryParam", "InHeader", "InCookie" ]
},
"name" : {
"type" : "string",
"description" : "Query param name"
},
"remove" : {
"type" : "string",
"description" : "Remove from value"
}
}
},
"algoSettings" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
},
"type" : "object"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Entity tags"
},
"id" : {
"type" : "string",
"description" : "Verifier id"
},
"_loc" : {
"description" : "Entity location",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"strategy" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "strict", "token", "verificationSettings" ]
}, {
"required" : [ "type", "verificationSettings" ]
}, {
"required" : [ "type", "verificationSettings", "algoSettings" ]
}, {
"required" : [ "type", "verificationSettings", "transformSettings", "algoSettings" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of strategy",
"enum" : [ "PassThrough", "Sign", "Transform", "DefaultToken" ]
},
"strict" : {
"type" : "boolean",
"description" : "If the token already exists in the request, then fail"
},
"token" : {
"type" : "object",
"description" : "The default token"
},
"verificationSettings" : {
"description" : "Verification settings",
"properties" : {
"fields" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Fields validation"
},
"arrayFields" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Fields array validation"
}
},
"type" : "object"
},
"algoSettings" : {
"description" : "Algorithm settings for re-signing token",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "size", "publicKey", "privateKey" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "secret", "base64" ]
}, {
"required" : [ "type", "url", "tlsConfig", "kty", "proxy", "headers", "ttl", "timeout" ]
}, {
"required" : [ "type", "onlyExposedCerts" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "publicKey", "privateKey" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
}
},
"transformSettings" : {
"description" : "Transformation settings",
"properties" : {
"location" : {
"description" : "Location of the token",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of location",
"enum" : [ "InQueryParam", "InHeader", "InCookie" ]
},
"name" : {
"type" : "string",
"description" : "Query param name"
},
"remove" : {
"type" : "string",
"description" : "Remove from value"
}
},
"type" : "object"
},
"mappingSettings" : {
"description" : "Token mapping settings",
"properties" : {
"map" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Change values"
},
"values" : {
"type" : "object",
"description" : "Add values"
},
"remove" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Remove some token claims"
}
},
"type" : "object"
}
},
"type" : "object"
}
}
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Entity metadata"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"ids" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"letsEncrypt" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"config" : {
"type" : "object",
"description" : "???"
},
"index" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"attrs" : {
"description" : "???",
"properties" : { },
"type" : "object"
}
}
},
"otoroshi.next.plugins.IpAddressAllowedList" : {
"type" : "object",
"description" : "???",
"properties" : {
"addresses" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.plugins.apikeys.ApikeyAuthModule" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.models.CustomTimeouts" : {
"type" : "object",
"description" : "???",
"properties" : {
"path" : {
"type" : "string",
"description" : "???"
},
"callAndStreamTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"callTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"idleTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"globalTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"connectionTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
}
}
},
"otoroshi.models.BasicAuthConstraints" : {
"type" : "object",
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"headerName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"queryName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.models.Transform" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of strategy",
"enum" : [ "PassThrough", "Sign", "Transform", "DefaultToken" ]
},
"verificationSettings" : {
"description" : "Verification settings",
"properties" : {
"fields" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Fields validation"
},
"arrayFields" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Fields array validation"
}
},
"type" : "object"
},
"transformSettings" : {
"description" : "Transformation settings",
"properties" : {
"location" : {
"description" : "Location of the token",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of location",
"enum" : [ "InQueryParam", "InHeader", "InCookie" ]
},
"name" : {
"type" : "string",
"description" : "Query param name"
},
"remove" : {
"type" : "string",
"description" : "Remove from value"
}
},
"type" : "object"
},
"mappingSettings" : {
"description" : "Token mapping settings",
"properties" : {
"map" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Change values"
},
"values" : {
"type" : "object",
"description" : "Add values"
},
"remove" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Remove some token claims"
}
},
"type" : "object"
}
},
"type" : "object"
},
"algoSettings" : {
"description" : "Algorithm settings for re-signing token",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "size", "publicKey", "privateKey" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "secret", "base64" ]
}, {
"required" : [ "type", "url", "tlsConfig", "kty", "proxy", "headers", "ttl", "timeout" ]
}, {
"required" : [ "type", "onlyExposedCerts" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "publicKey", "privateKey" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
}
}
},
"type" : "object",
"description" : "jwt token transformation policy settings"
},
"otoroshi.next.plugins.NgIpStackGeolocationInfoExtractor" : {
"type" : "object",
"description" : "???",
"properties" : {
"apikey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"log" : {
"type" : "boolean",
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgAuthModuleUserExtractor" : {
"type" : "object",
"description" : "???",
"properties" : {
"module" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.next.plugins.OIDCAccessTokenValidator" : {
"type" : "object",
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"at_least_one" : {
"type" : "boolean",
"description" : "???"
},
"config" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.models.KidAlgoSettings" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
},
"type" : "object",
"description" : "Settings to find keypair based on header kid for verification"
},
"otoroshi.next.plugins.GraphQLProxyConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"max_complexity" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"schema" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"path" : {
"type" : "string",
"description" : "???"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"endpoint" : {
"type" : "string",
"description" : "???"
},
"max_depth" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
}
},
"otoroshi.plugins.loggers.ResponseBodyEvent" : {
"type" : "object",
"description" : "???",
"properties" : {
"status" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"url" : {
"type" : "string",
"description" : "???"
},
"reqId" : {
"type" : "string",
"description" : "???"
},
"from" : {
"type" : "string",
"description" : "???"
},
"ua" : {
"type" : "string",
"description" : "???"
},
"method" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.models.AlwaysMatch" : {
"type" : "object",
"description" : "Always select target",
"properties" : {
"type" : {
"type" : "string",
"enum" : [ "Always" ]
}
}
},
"otoroshi.next.plugins.MockResponses" : {
"type" : "object",
"description" : "???",
"properties" : {
"responses" : {
"type" : "array",
"items" : {
"properties" : {
"path" : {
"type" : "string",
"description" : "???"
},
"body" : {
"type" : "string",
"description" : "???"
},
"status" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"method" : {
"type" : "string",
"description" : "???"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"pass_through" : {
"type" : "boolean",
"description" : "???"
},
"form_data" : {
"description" : "???",
"type" : "object",
"properties" : {
"resources" : {
"type" : "array",
"items" : {
"properties" : {
"name" : {
"type" : "string",
"description" : "???"
},
"schema" : {
"type" : "array",
"items" : {
"properties" : {
"field_name" : {
"type" : "string",
"description" : "???"
},
"field_type" : {
"type" : "string",
"description" : "???"
},
"value" : {
"type" : "object",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"additional_data" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"description" : "???"
},
"endpoints" : {
"type" : "array",
"items" : {
"properties" : {
"status" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"body" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"path" : {
"type" : "string",
"description" : "???"
},
"resource" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"headers" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"method" : {
"type" : "string",
"description" : "???"
},
"resource_list" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
}
}
}
}
},
"otoroshi.next.plugins.NgJwtUserExtractorConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"meta_path" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"strip" : {
"type" : "boolean",
"description" : "???"
},
"verifier" : {
"type" : "string",
"description" : "???"
},
"email_path" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"strict" : {
"type" : "boolean",
"description" : "???"
},
"name_path" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.models.TenantId" : {
"type" : "string",
"description" : "organization id"
},
"otoroshi.next.plugins.BrotliResponseCompressor" : {
"type" : "object",
"description" : "???",
"properties" : {
"compression_level" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"buffer_size" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"chunked_threshold" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"excluded_patterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"white_list" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"black_list" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.auth.SAMLCanocalizationMethod" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.models.NgTreeRouter_Test" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"Done" : {
"type" : "object",
"description" : "operation is done",
"properties" : {
"done" : {
"type" : "boolean"
}
}
},
"UserTokenBody" : {
"type" : "object",
"properties" : {
"token" : {
"type" : "string"
}
}
},
"otoroshi.utils.mailer.MailgunSettings" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of exporter",
"enum" : [ "elastic", "webhook", "kafka", "pulsar", "file", "mailer", "custom", "console", "metrics" ]
},
"eu" : {
"type" : "boolean",
"description" : "European tenant"
},
"apiKey" : {
"type" : "string",
"description" : "Mailgun apikey"
},
"domain" : {
"type" : "string",
"description" : "Mailgun domain"
},
"to" : {
"type" : "array",
"items" : {
"properties" : {
"name" : {
"type" : "string",
"description" : "Destination name"
},
"email" : {
"type" : "string",
"description" : "Email address"
}
},
"type" : "object"
},
"description" : "Destination email address"
}
},
"type" : "object",
"description" : "Settings for the mailgun mailer"
},
"otoroshi.next.models.KvNgRouteCompositionDataStore" : {
"type" : "object",
"description" : "???",
"properties" : {
"_env" : {
"description" : "???",
"properties" : {
"circuitBeakersHolder" : {
"description" : "???",
"properties" : { },
"type" : "object"
}
},
"type" : "object"
}
}
},
"otoroshi.models.FileSettings" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of exporter",
"enum" : [ "elastic", "webhook", "kafka", "pulsar", "file", "mailer", "custom", "console", "metrics" ]
},
"path" : {
"type" : "string",
"description" : "???"
},
"maxFileSize" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
}
},
"type" : "object",
"description" : "???"
},
"otoroshi.plugins.workflow.WorkflowEndpoint" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.models.InfraProviderMatch" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"provider" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object",
"description" : "???"
},
"otoroshi.models.Exporter" : {
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "sendEvents", "truststore", "hostValidation", "servers", "mtlsConfig", "securityProtocol", "keystore", "topic", "keyPass", "saslConfig" ]
}, {
"required" : [ "type", "tlsTrustCertsFilePath", "tenant", "uri", "mtlsConfig", "topic", "namespace" ]
}, {
"required" : [ "type" ]
}, {
"required" : [ "type", "sendWorkers", "applyTemplate", "uris", "mtlsConfig", "version", "maxBulkSize", "headers", "indexSettings", "user", "index", "password" ]
}, {
"required" : [ "type", "ref", "config" ]
}, {
"required" : [ "type", "path", "maxFileSize" ]
}, {
"required" : [ "type", "labels" ]
}, {
"required" : [ "type", "url", "headers", "mtlsConfig" ]
}, {
"required" : [ "type" ]
}, {
"required" : [ "type", "url", "headers", "to" ]
}, {
"required" : [ "type" ]
}, {
"required" : [ "type", "url", "headers", "to" ]
}, {
"required" : [ "type", "eu", "apiKey", "domain", "to" ]
}, {
"required" : [ "type", "apiKeyPublic", "apiKeyPrivate", "to" ]
}, {
"required" : [ "type" ]
}, {
"required" : [ "type", "apiKey", "to" ]
}, {
"required" : [ "type", "eu", "apiKey", "domain", "to" ]
}, {
"required" : [ "type", "apiKeyPublic", "apiKeyPrivate", "to" ]
}, {
"required" : [ "type" ]
}, {
"required" : [ "type", "apiKey", "to" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of exporter",
"enum" : [ "elastic", "webhook", "kafka", "pulsar", "file", "mailer", "custom", "console", "metrics" ]
},
"sendEvents" : {
"type" : "boolean",
"description" : "Send events to it, or just connect"
},
"truststore" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"hostValidation" : {
"type" : "boolean",
"description" : "Enabled TLS hostname validation"
},
"servers" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "URLs of the kafka servers"
},
"mtlsConfig" : {
"description" : "TLS config when calling webhook",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"securityProtocol" : {
"type" : "string",
"description" : "Used security protocol"
},
"keystore" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"topic" : {
"type" : "string",
"description" : "???"
},
"keyPass" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"saslConfig" : {
"description" : "SASL configuration",
"type" : "object",
"properties" : {
"username" : {
"type" : "string",
"description" : "SASL username"
},
"password" : {
"type" : "string",
"description" : "SASL password"
},
"mechanism" : {
"type" : "string",
"description" : "SASL login mechanism"
}
}
},
"tlsTrustCertsFilePath" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"tenant" : {
"type" : "string",
"description" : "???"
},
"uri" : {
"type" : "string",
"description" : "???"
},
"namespace" : {
"type" : "string",
"description" : "???"
},
"sendWorkers" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"applyTemplate" : {
"type" : "boolean",
"description" : "Enable template creation/update"
},
"uris" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"version" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"maxBulkSize" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Sender headers"
},
"indexSettings" : {
"description" : "Indexation settings",
"properties" : {
"clientSide" : {
"type" : "boolean",
"description" : "Enable index splitting on client side"
},
"numberOfShards" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"numberOfReplicas" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"interval" : {
"description" : "Index splitting interval",
"properties" : { },
"type" : "object"
}
},
"type" : "object"
},
"user" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"index" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"password" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"ref" : {
"type" : "string",
"description" : "???"
},
"config" : {
"type" : "object",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
},
"maxFileSize" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"labels" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"url" : {
"type" : "string",
"description" : "Sender URL"
},
"to" : {
"type" : "array",
"items" : {
"properties" : {
"name" : {
"type" : "string",
"description" : "Destination name"
},
"email" : {
"type" : "string",
"description" : "Email address"
}
},
"type" : "object"
},
"description" : "Destination email address"
},
"eu" : {
"type" : "boolean",
"description" : "European tenant"
},
"apiKey" : {
"type" : "string",
"description" : "Sendgrid apikey"
},
"domain" : {
"type" : "string",
"description" : "Mailgun domain"
},
"apiKeyPublic" : {
"type" : "string",
"description" : "Public key"
},
"apiKeyPrivate" : {
"type" : "string",
"description" : "Private key"
}
}
},
"otoroshi.plugins.discovery.SelfRegistrationConfig" : {
"description" : "Configuration for the DiscoverySelfRegistrationTransformer plugin",
"type" : "object",
"properties" : {
"registrationTtl" : {
"description" : "the ttl for a service registration",
"type" : "number"
},
"targetTemplate" : {
"description" : "A json template for otoroshi target",
"type" : "object"
},
"hosts" : {
"description" : "The possible list of hosts for a service",
"type" : "array",
"items" : {
"type" : "string"
}
}
}
},
"otoroshi.next.models.NgMatchedRoutes" : {
"type" : "object",
"description" : "???",
"properties" : {
"routes" : {
"type" : "array",
"items" : {
"properties" : {
"debug_flow" : {
"type" : "boolean",
"description" : "Enable report debugging"
},
"enabled" : {
"type" : "boolean",
"description" : "Is the route enabled"
},
"name" : {
"type" : "string",
"description" : "The name of the route"
},
"id" : {
"type" : "string",
"description" : "The ud of the route"
},
"export_reporting" : {
"type" : "boolean",
"description" : "Export the execution reporting through standard data exporter"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "The metadata of the route"
},
"frontend" : {
"description" : "The frontend of the route",
"properties" : {
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "the headers that will be matched"
},
"query" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "the query params that will be matched"
},
"domains" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "The domain and path that will be matched"
},
"methods" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "the http methods that will be matched"
},
"exact" : {
"type" : "boolean",
"description" : "Match on exact path ?"
},
"strip_path" : {
"type" : "boolean",
"description" : "Is path stripped from backend request"
}
},
"type" : "object"
},
"_loc" : {
"description" : "The location of the route",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "The tags of the route"
},
"capture" : {
"type" : "boolean",
"description" : "Capture http traffic"
},
"groups" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "The groups of the route"
},
"backend_ref" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"description" : {
"type" : "string",
"description" : "The description of the route"
},
"backend" : {
"description" : "The backend of the route",
"properties" : {
"root" : {
"type" : "string",
"description" : "The root path of the backend or the full rewrite path"
},
"health_check" : {
"description" : "???",
"type" : "object",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"url" : {
"type" : "string",
"description" : "???"
},
"timeout" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
}
},
"client" : {
"description" : "Client config. of the backend",
"properties" : {
"idle_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout on idle connection"
},
"sample_interval" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify the sliding window time for the circuit breaker in milliseconds, after this time, error count will be reseted"
},
"cache_connection_settings" : {
"description" : "Cached connection settings",
"properties" : {
"queue_size" : {
"type" : "integer",
"format" : "int32",
"description" : "How much request can be queue before dropping it"
},
"enabled" : {
"type" : "boolean",
"description" : "Is cached connection enabled"
}
},
"type" : "object"
},
"call_and_stream_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (hard timeout, connection will be closed after that duration)"
},
"custom_timeouts" : {
"type" : "array",
"items" : {
"properties" : {
"connection_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout at connection"
},
"call_and_stream_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (hard timeout, connection will be closed after that duration)"
},
"path" : {
"type" : "string",
"description" : "path on which this configuration works"
},
"call_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (soft timeout as it's enforced by the circuit breaker)"
},
"idle_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout on idle connection"
},
"global_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long the global call (with retries) should last at most in milliseconds"
}
},
"type" : "object"
},
"description" : "Custom timeouts per path"
},
"connection_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout at connection"
},
"call_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (soft timeout as it's enforced by the circuit breaker)"
},
"global_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long the global call (with retries) should last at most in milliseconds"
},
"retry_initial_delay" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify the delay between two retries. Each retry, the delay is multiplied by the backoff factor"
},
"backoff_factor" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify the factor to multiply the delay for each retry"
},
"proxy" : {
"description" : "Web proxy settings for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"retries" : {
"type" : "integer",
"format" : "int32",
"description" : "Specify how many times the client will try to fetch the result of the request after an error before giving up."
},
"max_errors" : {
"type" : "integer",
"format" : "int32",
"description" : "Specify how many errors can pass before opening the circuit breaker"
}
},
"type" : "object"
},
"load_balancing" : {
"description" : "Loadbalancing config og the backend",
"properties" : {
"type" : {
"type" : "string",
"enum" : [ "BestResponseTime", "IpAddressHash", "Random", "RoundRobin", "Sticky", "WeightedBestResponseTime" ]
},
"ratio" : {
"type" : "number",
"format" : "double"
}
},
"type" : "object"
},
"rewrite" : {
"type" : "boolean",
"description" : "Does the backend performs a full url rewrite ?"
},
"targets" : {
"type" : "array",
"items" : {
"properties" : {
"ip_address" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"protocol" : {
"type" : "string",
"enum" : [ "HTTP/1.0", "HTTP/1.1", "HTTP/2.0", "HTTP/3.0" ],
"description" : "Protocol for the target"
},
"predicate" : {
"description" : "Predicate to choose this target",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"dc" : {
"type" : "string",
"description" : "???"
},
"positions" : {
"type" : "array",
"items" : {
"properties" : {
"latitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"longitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"radius" : {
"type" : "number",
"format" : "double",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"provider" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataCenter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"rack" : {
"type" : "string",
"description" : "???"
},
"region" : {
"type" : "string",
"description" : "???"
},
"zone" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"tls_config" : {
"description" : "TLS settings to contact this target",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "Enabled"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
},
"loose" : {
"type" : "boolean",
"description" : "Loose verification"
},
"trust_all" : {
"type" : "boolean",
"description" : "Trust any certificate"
},
"trusted_certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
}
},
"type" : "object"
},
"tls" : {
"type" : "boolean",
"description" : "Does the target uses TLS"
},
"port" : {
"type" : "integer",
"format" : "int32",
"description" : "port of the target"
},
"id" : {
"type" : "string",
"description" : "id of the target"
},
"weight" : {
"type" : "integer",
"format" : "int32",
"description" : "The weight of the target when choosing"
},
"hostname" : {
"type" : "string",
"description" : "hostname of the target"
}
},
"type" : "object"
},
"description" : "The targets of the backend"
}
},
"type" : "object"
}
},
"type" : "object"
},
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
},
"no_more_segments" : {
"type" : "boolean",
"description" : "???"
}
}
},
"otoroshi.next.plugins.JsonToXmlResponse" : {
"type" : "object",
"description" : "???",
"properties" : {
"filter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.models.RouteCompositionIdentifier" : {
"type" : "object",
"description" : "???",
"properties" : {
"id" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.greenscore.RulesSection" : {
"type" : "object",
"description" : "???",
"properties" : {
"id" : {
"description" : "???",
"properties" : {
"value" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"rules" : {
"type" : "array",
"items" : {
"properties" : {
"sectionWeight" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"advice" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"weight" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"id" : {
"description" : "???",
"properties" : {
"value" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"description" : "???"
}
}
},
"otoroshi.auth.LdapAuthModuleConfig" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the type of the module",
"enum" : [ "saml", "oauth1", "oauth2", "ldap", "basic" ]
},
"extraMetadata" : {
"type" : "object",
"description" : "???"
},
"desc" : {
"type" : "string",
"description" : "???"
},
"name" : {
"type" : "string",
"description" : "???"
},
"allowEmptyPassword" : {
"type" : "boolean",
"description" : "???"
},
"groupFilters" : {
"type" : "array",
"items" : {
"properties" : {
"group" : {
"type" : "string",
"description" : "???"
},
"tenant" : {
"description" : "???",
"properties" : {
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
}
},
"type" : "object"
},
"team" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"rightsOverride" : {
"type" : "object",
"additionalProperties" : {
"properties" : {
"rights" : {
"type" : "array",
"items" : {
"properties" : {
"tenant" : {
"description" : "Access rights on organizations",
"properties" : {
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
}
},
"type" : "object"
},
"teams" : {
"type" : "array",
"items" : {
"properties" : {
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
}
},
"type" : "object"
},
"description" : "Access rights on teams"
}
},
"type" : "object"
},
"description" : "Access rights of a user"
}
},
"type" : "object"
},
"description" : "???"
},
"serverUrls" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"clientSideSessionEnabled" : {
"type" : "boolean",
"description" : "???"
},
"basicAuth" : {
"type" : "boolean",
"description" : "???"
},
"searchBase" : {
"type" : "string",
"description" : "???"
},
"groupRights" : {
"type" : "object",
"additionalProperties" : {
"properties" : {
"userRights" : {
"description" : "???",
"properties" : {
"rights" : {
"type" : "array",
"items" : {
"properties" : {
"tenant" : {
"description" : "Access rights on organizations",
"properties" : {
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
}
},
"type" : "object"
},
"teams" : {
"type" : "array",
"items" : {
"properties" : {
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
}
},
"type" : "object"
},
"description" : "Access rights on teams"
}
},
"type" : "object"
},
"description" : "Access rights of a user"
}
},
"type" : "object"
},
"users" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"superAdmins" : {
"type" : "boolean",
"description" : "???"
},
"sessionMaxAge" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"metadataField" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"searchFilter" : {
"type" : "string",
"description" : "???"
},
"adminUsername" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"userValidators" : {
"type" : "array",
"items" : {
"properties" : {
"path" : {
"type" : "string",
"description" : "???"
},
"value" : {
"type" : "object",
"description" : "???"
},
"error" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"description" : "???"
},
"emailField" : {
"type" : "string",
"description" : "???"
},
"extractProfileFilter" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"userBase" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"id" : {
"type" : "string",
"description" : "???"
},
"_loc" : {
"description" : "???",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"adminPassword" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"extractProfileFilterNot" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"nameField" : {
"type" : "string",
"description" : "???"
},
"extractProfile" : {
"type" : "boolean",
"description" : "???"
},
"dataOverride" : {
"type" : "object",
"additionalProperties" : {
"type" : "object"
},
"description" : "???"
},
"sessionCookieValues" : {
"description" : "???",
"properties" : {
"httpOnly" : {
"type" : "boolean",
"description" : "???"
},
"secure" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
}
},
"type" : "object",
"description" : "???"
},
"otoroshi.next.plugins.Keys" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.models.QuotasAlmostExceededSettings" : {
"type" : "object",
"description" : "Settings for apikey quotas alerts",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "Is quotas alert enabled"
},
"dailyQuotasThreshold" : {
"type" : "number",
"format" : "double",
"description" : "The daily quotas threshold before generating alert"
},
"monthlyQuotasThreshold" : {
"type" : "number",
"format" : "double",
"description" : "The monthly quotas threshold before generating alert"
}
}
},
"otoroshi.next.plugins.JQResponse" : {
"type" : "object",
"description" : "???",
"properties" : {
"filter" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.models.Team" : {
"type" : "object",
"description" : "An otoroshi model for a team of users in the organization (otoroshi-ui)",
"properties" : {
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Entity tags"
},
"name" : {
"type" : "string",
"description" : "Entity name"
},
"description" : {
"type" : "string",
"description" : "Entity description"
},
"tenant" : {
"description" : "Entity organization",
"type" : "string"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Entity metadata"
},
"id" : {
"description" : "Entity id",
"type" : "string"
}
}
},
"otoroshi.models.ChaosConfig" : {
"type" : "object",
"description" : "Settings to enable chaos engineering for a service",
"properties" : {
"badResponsesFaultConfig" : {
"description" : "Settings for bad responses",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"responses" : {
"type" : "array",
"items" : {
"properties" : {
"status" : {
"type" : "integer",
"format" : "int32",
"description" : "The HTTP status for the response"
},
"body" : {
"type" : "string",
"description" : "The body of the HTTP response"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "The HTTP headers of the response"
}
},
"type" : "object"
},
"description" : "The possibles responses"
}
}
},
"largeRequestFaultConfig" : {
"description" : "Settings for large requests",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"additionalRequestSize" : {
"type" : "integer",
"format" : "int32",
"description" : "The size added to the request body in bytes. Added payload will be spaces only."
}
}
},
"largeResponseFaultConfig" : {
"description" : "Settings for large responses",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"additionalResponseSize" : {
"type" : "integer",
"format" : "int32",
"description" : "Add n 0 bytes"
}
}
},
"latencyInjectionFaultConfig" : {
"description" : "Settings for latency injection",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"from" : {
"type" : "number",
"description" : "The start range of latency added to the request"
},
"to" : {
"type" : "number",
"description" : "The end range of latency added to the request"
}
}
},
"enabled" : {
"type" : "boolean",
"description" : "Whether or not this config is enabled"
}
}
},
"otoroshi.events.HealthCheckEvent" : {
"type" : "object",
"description" : "???",
"properties" : {
"error" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"health" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"logicCheck" : {
"type" : "boolean",
"description" : "???"
},
"status" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"url" : {
"type" : "string",
"description" : "???"
},
"duration" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
}
}
},
"otoroshi.plugins.authcallers.OAuth2Kind" : {
"description" : "The kind of oauth2 flow",
"type" : "string",
"enum" : [ "client_credentials", "password" ]
},
"otoroshi.models.SecComVersion" : {
"type" : "string",
"enum" : [ "V1", "v2" ],
"description" : "Version of the challenge token"
},
"otoroshi.script.JobKind" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.plugins.authcallers.OAuth2Caller" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.models.TransformSettings" : {
"type" : "object",
"description" : "jwt token transformation settings",
"properties" : {
"location" : {
"description" : "Location of the token",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "name" ]
}, {
"required" : [ "type", "name", "remove" ]
}, {
"required" : [ "type", "name" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of location",
"enum" : [ "InQueryParam", "InHeader", "InCookie" ]
},
"name" : {
"type" : "string",
"description" : "Query param name"
},
"remove" : {
"type" : "string",
"description" : "Remove from value"
}
}
},
"mappingSettings" : {
"description" : "Token mapping settings",
"properties" : {
"map" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Change values"
},
"values" : {
"type" : "object",
"description" : "Add values"
},
"remove" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Remove some token claims"
}
},
"type" : "object"
}
}
},
"ServiceDescriptorList" : {
"type" : "array",
"items" : {
"properties" : {
"buildMode" : {
"type" : "boolean",
"description" : "???"
},
"hosts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"privateApp" : {
"type" : "boolean",
"description" : "???"
},
"localScheme" : {
"type" : "string",
"description" : "???"
},
"authConfigRef" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"issueCertCA" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"root" : {
"type" : "string",
"description" : "???"
},
"name" : {
"type" : "string",
"description" : "???"
},
"additionalHeaders" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"domain" : {
"type" : "string",
"description" : "???"
},
"clientConfig" : {
"description" : "???",
"properties" : {
"connectionTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"useCircuitBreaker" : {
"type" : "boolean",
"description" : "???"
},
"retryInitialDelay" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"cacheConnectionSettings" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"queueSize" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
},
"type" : "object"
},
"proxy" : {
"description" : "???",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"callTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"callAndStreamTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"globalTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"maxErrors" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"retries" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"backoffFactor" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"customTimeouts" : {
"type" : "array",
"items" : {
"properties" : {
"path" : {
"type" : "string",
"description" : "???"
},
"callAndStreamTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"callTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"idleTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"globalTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"connectionTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"idleTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"sampleInterval" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
}
},
"type" : "object"
},
"matchingRoot" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"forceHttps" : {
"type" : "boolean",
"description" : "???"
},
"localHost" : {
"type" : "string",
"description" : "???"
},
"sendOtoroshiHeadersBack" : {
"type" : "boolean",
"description" : "???"
},
"healthCheck" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"url" : {
"type" : "string",
"description" : "???"
},
"timeout" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
},
"type" : "object"
},
"strictlyPrivate" : {
"type" : "boolean",
"description" : "???"
},
"detectApiKeySooner" : {
"type" : "boolean",
"description" : "???"
},
"allowHttp10" : {
"type" : "boolean",
"description" : "???"
},
"subdomain" : {
"type" : "string",
"description" : "???"
},
"paths" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"stripPath" : {
"type" : "boolean",
"description" : "???"
},
"secComAlgoChallengeOtoToBack" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
},
"type" : "object"
},
"apiKeyConstraints" : {
"description" : "???",
"properties" : {
"customHeadersAuth" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"clientIdHeaderName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"clientSecretHeaderName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"routing" : {
"description" : "???",
"properties" : {
"oneTagIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"noneMetaKeysIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"oneMetaIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"oneMetaKeyIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allMetaKeysIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"noneTagIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allTagsIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allMetaIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"noneMetaIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"clientIdAuth" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"headerName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"queryName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"jwtAuth" : {
"description" : "???",
"properties" : {
"keyPairSigned" : {
"type" : "boolean",
"description" : "???"
},
"cookieName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"queryName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"headerName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"secretSigned" : {
"type" : "boolean",
"description" : "???"
},
"maxJwtLifespanSecs" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"includeRequestAttributes" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"basicAuth" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"headerName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"queryName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
}
},
"type" : "object"
},
"env" : {
"type" : "string",
"description" : "???"
},
"xForwardedHeaders" : {
"type" : "boolean",
"description" : "???"
},
"transformerRefs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"gzip" : {
"description" : "???",
"properties" : {
"compressionLevel" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"blackList" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"chunkedThreshold" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"bufferSize" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"whiteList" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"sendInfoToken" : {
"type" : "boolean",
"description" : "???"
},
"tcpUdpTunneling" : {
"type" : "boolean",
"description" : "???"
},
"removeHeadersOut" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"useAkkaHttpClient" : {
"type" : "boolean",
"description" : "???"
},
"maintenanceMode" : {
"type" : "boolean",
"description" : "???"
},
"id" : {
"type" : "string",
"description" : "???"
},
"removeHeadersIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"logAnalyticsOnServer" : {
"type" : "boolean",
"description" : "???"
},
"secComAlgoInfoToken" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
},
"type" : "object"
},
"userFacing" : {
"type" : "boolean",
"description" : "???"
},
"transformerConfig" : {
"type" : "object",
"description" : "???"
},
"clientValidatorRef" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"securityExcludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"ipFiltering" : {
"description" : "???",
"properties" : {
"whitelist" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"blacklist" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"targets" : {
"type" : "array",
"items" : {
"properties" : {
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"host" : {
"type" : "string",
"description" : "???"
},
"weight" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"protocol" : {
"type" : "string",
"enum" : [ "HTTP/1.0", "HTTP/1.1", "HTTP/2.0", "HTTP/3.0" ],
"description" : "???"
},
"predicate" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"dc" : {
"type" : "string",
"description" : "???"
},
"positions" : {
"type" : "array",
"items" : {
"properties" : {
"latitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"longitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"radius" : {
"type" : "number",
"format" : "double",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"provider" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataCenter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"rack" : {
"type" : "string",
"description" : "???"
},
"region" : {
"type" : "string",
"description" : "???"
},
"zone" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"ipAddress" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"mtlsConfig" : {
"description" : "???",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"scheme" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"redirection" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"code" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"to" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"restrictions" : {
"description" : "???",
"properties" : {
"forbidden" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"allowed" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"notFound" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"allowLast" : {
"type" : "boolean",
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"overrideHost" : {
"type" : "boolean",
"description" : "???"
},
"accessValidator" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"refs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"config" : {
"type" : "object",
"description" : "???"
}
},
"type" : "object"
},
"sendStateChallenge" : {
"type" : "boolean",
"description" : "???"
},
"chaosConfig" : {
"description" : "???",
"properties" : {
"badResponsesFaultConfig" : {
"description" : "Settings for bad responses",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"responses" : {
"type" : "array",
"items" : {
"properties" : {
"status" : {
"type" : "integer",
"format" : "int32",
"description" : "The HTTP status for the response"
},
"body" : {
"type" : "string",
"description" : "The body of the HTTP response"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "The HTTP headers of the response"
}
},
"type" : "object"
},
"description" : "The possibles responses"
}
}
},
"largeRequestFaultConfig" : {
"description" : "Settings for large requests",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"additionalRequestSize" : {
"type" : "integer",
"format" : "int32",
"description" : "The size added to the request body in bytes. Added payload will be spaces only."
}
}
},
"largeResponseFaultConfig" : {
"description" : "Settings for large responses",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"additionalResponseSize" : {
"type" : "integer",
"format" : "int32",
"description" : "Add n 0 bytes"
}
}
},
"latencyInjectionFaultConfig" : {
"description" : "Settings for latency injection",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"from" : {
"type" : "number",
"description" : "The start range of latency added to the request"
},
"to" : {
"type" : "number",
"description" : "The end range of latency added to the request"
}
}
},
"enabled" : {
"type" : "boolean",
"description" : "Whether or not this config is enabled"
}
},
"type" : "object"
},
"secComInfoTokenVersion" : {
"description" : "Version of the info token",
"type" : "string",
"enum" : [ "Legacy", "Latest" ]
},
"additionalHeadersOut" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"secComHeaders" : {
"description" : "???",
"properties" : {
"claimRequestName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"stateRequestName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"stateResponseName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"matchingHeaders" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"secComAlgoChallengeBackToOto" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
},
"type" : "object"
},
"secComUseSameAlgo" : {
"type" : "boolean",
"description" : "???"
},
"useNewWSClient" : {
"type" : "boolean",
"description" : "???"
},
"secComExcludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"redirectToLocal" : {
"type" : "boolean",
"description" : "???"
},
"enforceSecureCommunication" : {
"type" : "boolean",
"description" : "???"
},
"missingOnlyHeadersOut" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"secComSettings" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
},
"type" : "object"
},
"handleLegacyDomain" : {
"type" : "boolean",
"description" : "???"
},
"canary" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"traffic" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"targets" : {
"type" : "array",
"items" : {
"properties" : {
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"host" : {
"type" : "string",
"description" : "???"
},
"weight" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"protocol" : {
"type" : "string",
"enum" : [ "HTTP/1.0", "HTTP/1.1", "HTTP/2.0", "HTTP/3.0" ],
"description" : "???"
},
"predicate" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"dc" : {
"type" : "string",
"description" : "???"
},
"positions" : {
"type" : "array",
"items" : {
"properties" : {
"latitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"longitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"radius" : {
"type" : "number",
"format" : "double",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"provider" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataCenter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"rack" : {
"type" : "string",
"description" : "???"
},
"region" : {
"type" : "string",
"description" : "???"
},
"zone" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"ipAddress" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"mtlsConfig" : {
"description" : "???",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"scheme" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"root" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"_loc" : {
"description" : "???",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"plugins" : {
"description" : "???",
"properties" : {
"config" : {
"type" : "object",
"description" : "Plugins configuration"
},
"enabled" : {
"type" : "boolean",
"description" : "Plugins enabled"
},
"excluded" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Excluded paths"
},
"refs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Enabled plugins"
}
},
"type" : "object"
},
"secComTtl" : {
"type" : "number",
"description" : "???"
},
"description" : {
"type" : "string",
"description" : "???"
},
"secComVersion" : {
"description" : "Version of the challenge token",
"type" : "string",
"enum" : [ "V1", "v2" ]
},
"preRouting" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"refs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"config" : {
"type" : "object",
"description" : "???"
}
},
"type" : "object"
},
"groups" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"readOnly" : {
"type" : "boolean",
"description" : "???"
},
"privatePatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"targetsLoadBalancing" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"enum" : [ "BestResponseTime", "IpAddressHash", "Random", "RoundRobin", "Sticky", "WeightedBestResponseTime" ]
},
"ratio" : {
"type" : "number",
"format" : "double"
}
},
"type" : "object"
},
"cors" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"allowCredentials" : {
"type" : "boolean",
"description" : "???"
},
"maxAge" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"allowMethods" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allowHeaders" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"exposeHeaders" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allowOrigin" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"publicPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"api" : {
"description" : "???",
"properties" : {
"exposeApi" : {
"type" : "boolean",
"description" : "???"
},
"openApiDescriptorUrl" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"missingOnlyHeadersIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"issueCert" : {
"type" : "boolean",
"description" : "???"
},
"headersVerification" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"jwtVerifier" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of verifier",
"enum" : [ "global", "local", "ref" ]
},
"desc" : {
"type" : "string",
"description" : "Verifier description"
},
"name" : {
"type" : "string",
"description" : "Verifier name"
},
"strict" : {
"type" : "boolean",
"description" : "???"
},
"source" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "name" ]
}, {
"required" : [ "type", "name", "remove" ]
}, {
"required" : [ "type", "name" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of location",
"enum" : [ "InQueryParam", "InHeader", "InCookie" ]
},
"name" : {
"type" : "string",
"description" : "Query param name"
},
"remove" : {
"type" : "string",
"description" : "Remove from value"
}
}
},
"algoSettings" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
},
"type" : "object"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Entity tags"
},
"id" : {
"type" : "string",
"description" : "Verifier id"
},
"_loc" : {
"description" : "Entity location",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"strategy" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "strict", "token", "verificationSettings" ]
}, {
"required" : [ "type", "verificationSettings" ]
}, {
"required" : [ "type", "verificationSettings", "algoSettings" ]
}, {
"required" : [ "type", "verificationSettings", "transformSettings", "algoSettings" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of strategy",
"enum" : [ "PassThrough", "Sign", "Transform", "DefaultToken" ]
},
"strict" : {
"type" : "boolean",
"description" : "If the token already exists in the request, then fail"
},
"token" : {
"type" : "object",
"description" : "The default token"
},
"verificationSettings" : {
"description" : "Verification settings",
"properties" : {
"fields" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Fields validation"
},
"arrayFields" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Fields array validation"
}
},
"type" : "object"
},
"algoSettings" : {
"description" : "Algorithm settings for re-signing token",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "size", "publicKey", "privateKey" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "secret", "base64" ]
}, {
"required" : [ "type", "url", "tlsConfig", "kty", "proxy", "headers", "ttl", "timeout" ]
}, {
"required" : [ "type", "onlyExposedCerts" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "publicKey", "privateKey" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
}
},
"transformSettings" : {
"description" : "Transformation settings",
"properties" : {
"location" : {
"description" : "Location of the token",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of location",
"enum" : [ "InQueryParam", "InHeader", "InCookie" ]
},
"name" : {
"type" : "string",
"description" : "Query param name"
},
"remove" : {
"type" : "string",
"description" : "Remove from value"
}
},
"type" : "object"
},
"mappingSettings" : {
"description" : "Token mapping settings",
"properties" : {
"map" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Change values"
},
"values" : {
"type" : "object",
"description" : "Add values"
},
"remove" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Remove some token claims"
}
},
"type" : "object"
}
},
"type" : "object"
}
}
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Entity metadata"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"ids" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"letsEncrypt" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
}
},
"otoroshi.plugins.izanami.IzanamiCanaryRoutingConfigRoute" : {
"type" : "object",
"description" : "???",
"properties" : {
"variants" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"wildcard" : {
"type" : "boolean",
"description" : "???"
},
"default" : {
"type" : "string",
"description" : "???"
},
"regex" : {
"type" : "boolean",
"description" : "???"
},
"exact" : {
"type" : "boolean",
"description" : "???"
},
"route" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.models.ApiKey" : {
"type" : "object",
"description" : "An otoroshi apikey that can allow you to access some services",
"properties" : {
"dailyQuota" : {
"type" : "integer",
"format" : "int64",
"description" : "Authorized number of calls per day"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Bunch of metadata for the key"
},
"throttlingQuota" : {
"type" : "integer",
"format" : "int64",
"description" : "Authorized number of calls per second, measured on 10 seconds"
},
"constrainedServicesOnly" : {
"type" : "boolean",
"description" : "This apikey can only be used on services that constrained their apikey routing"
},
"allowClientIdOnly" : {
"type" : "boolean",
"description" : "This apikey can be used juste with the client_id value"
},
"_loc" : {
"description" : "The location of the apikey",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"restrictions" : {
"description" : "Apikey restrictions settings",
"properties" : {
"forbidden" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"allowed" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"notFound" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"allowLast" : {
"type" : "boolean",
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Apikey tags"
},
"enabled" : {
"type" : "boolean",
"description" : "Whether or not the key is enabled. If disabled, resources won't be available to calls using this key"
},
"readOnly" : {
"type" : "boolean",
"description" : "The apikey only allow access for GET, HEAD and OPTIONS verbs"
},
"clientSecret" : {
"type" : "string",
"description" : "The secret of the Api Key. Usually 64 random alpha numerical characters, but can be anything"
},
"validUntil" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"clientName" : {
"type" : "string",
"description" : "The name of the api key, for humans ;-)"
},
"monthlyQuota" : {
"type" : "integer",
"format" : "int64",
"description" : "Authorized number of calls per month"
},
"description" : {
"type" : "string",
"description" : "Description of this apikey"
},
"rotation" : {
"description" : "Apikey rotation settings",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "Rotation enabled"
},
"rotationEvery" : {
"type" : "integer",
"format" : "int64",
"description" : "Rotate every n hours"
},
"gracePeriod" : {
"type" : "integer",
"format" : "int64",
"description" : "period (in hours) during which both secrets works"
},
"nextSecret" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"authorizedEntities" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "The group/service ids (prefixed by group_ or service_ on which the key is authorized"
},
"clientId" : {
"type" : "string",
"description" : "The unique id of the Api Key. Usually 16 random alpha numerical characters, but can be anything"
}
}
},
"otoroshi.plugins.oidc.OIDCAccessTokenValidator" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.models.UserRight" : {
"type" : "object",
"description" : "Represent a user right (teams, organizations) in otoroshi-ui",
"properties" : {
"tenant" : {
"description" : "Access rights on organizations",
"properties" : {
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
}
},
"type" : "object"
},
"teams" : {
"type" : "array",
"items" : {
"properties" : {
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
}
},
"type" : "object"
},
"description" : "Access rights on teams"
}
}
},
"otoroshi.next.plugins.ApikeyAuthModuleConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"realm" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"matcher" : {
"description" : "???",
"type" : "object",
"properties" : {
"oneTagIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"noneMetaKeysIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"oneMetaIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"oneMetaKeyIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allMetaKeysIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"noneTagIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allTagsIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allMetaIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"noneMetaIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
}
}
}
}
},
"otoroshi.models.InHeader" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of location",
"enum" : [ "InQueryParam", "InHeader", "InCookie" ]
},
"name" : {
"type" : "string",
"description" : "Header name"
},
"remove" : {
"type" : "string",
"description" : "Remove from value"
}
},
"type" : "object",
"description" : "JWT token location (header)"
},
"otoroshi.next.plugins.MockResource" : {
"type" : "object",
"description" : "???",
"properties" : {
"name" : {
"type" : "string",
"description" : "???"
},
"schema" : {
"type" : "array",
"items" : {
"properties" : {
"field_name" : {
"type" : "string",
"description" : "???"
},
"field_type" : {
"type" : "string",
"description" : "???"
},
"value" : {
"type" : "object",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"additional_data" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.next.plugins.TailscaleTargetsJob" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.auth.GenericOauth2ModuleConfig" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the type of the module",
"enum" : [ "saml", "oauth1", "oauth2", "ldap", "basic" ]
},
"extraMetadata" : {
"type" : "object",
"description" : "???"
},
"desc" : {
"type" : "string",
"description" : "???"
},
"name" : {
"type" : "string",
"description" : "???"
},
"rightsOverride" : {
"type" : "object",
"additionalProperties" : {
"properties" : {
"rights" : {
"type" : "array",
"items" : {
"properties" : {
"tenant" : {
"description" : "Access rights on organizations",
"properties" : {
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
}
},
"type" : "object"
},
"teams" : {
"type" : "array",
"items" : {
"properties" : {
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
}
},
"type" : "object"
},
"description" : "Access rights on teams"
}
},
"type" : "object"
},
"description" : "Access rights of a user"
}
},
"type" : "object"
},
"description" : "???"
},
"clientId" : {
"type" : "string",
"description" : "???"
},
"otoroshiRightsField" : {
"type" : "string",
"description" : "???"
},
"clientSideSessionEnabled" : {
"type" : "boolean",
"description" : "???"
},
"scope" : {
"type" : "string",
"description" : "???"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"accessTokenField" : {
"type" : "string",
"description" : "???"
},
"superAdmins" : {
"type" : "boolean",
"description" : "???"
},
"sessionMaxAge" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"refreshTokens" : {
"type" : "boolean",
"description" : "???"
},
"loginUrl" : {
"type" : "string",
"description" : "???"
},
"apiKeyTagsField" : {
"type" : "string",
"description" : "???"
},
"otoroshiDataField" : {
"type" : "string",
"description" : "???"
},
"userValidators" : {
"type" : "array",
"items" : {
"properties" : {
"path" : {
"type" : "string",
"description" : "???"
},
"value" : {
"type" : "object",
"description" : "???"
},
"error" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"description" : "???"
},
"emailField" : {
"type" : "string",
"description" : "???"
},
"mtlsConfig" : {
"description" : "???",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"tokenUrl" : {
"type" : "string",
"description" : "???"
},
"useCookie" : {
"type" : "boolean",
"description" : "???"
},
"id" : {
"type" : "string",
"description" : "???"
},
"pkce" : {
"description" : "???",
"type" : "object",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"algorithm" : {
"type" : "string",
"description" : "???"
}
}
},
"authorizeUrl" : {
"type" : "string",
"description" : "???"
},
"_loc" : {
"description" : "???",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"callbackUrl" : {
"type" : "string",
"description" : "???"
},
"proxy" : {
"description" : "???",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"apiKeyMetaField" : {
"type" : "string",
"description" : "???"
},
"clientSecret" : {
"type" : "string",
"description" : "???"
},
"useJson" : {
"type" : "boolean",
"description" : "???"
},
"oidConfig" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"claims" : {
"type" : "string",
"description" : "???"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"noWildcardRedirectURI" : {
"type" : "boolean",
"description" : "???"
},
"nameField" : {
"type" : "string",
"description" : "???"
},
"introspectionUrl" : {
"type" : "string",
"description" : "???"
},
"logoutUrl" : {
"type" : "string",
"description" : "???"
},
"dataOverride" : {
"type" : "object",
"additionalProperties" : {
"type" : "object"
},
"description" : "???"
},
"userInfoUrl" : {
"type" : "string",
"description" : "???"
},
"jwtVerifier" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "size", "publicKey", "privateKey" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "secret", "base64" ]
}, {
"required" : [ "type", "url", "tlsConfig", "kty", "proxy", "headers", "ttl", "timeout" ]
}, {
"required" : [ "type", "onlyExposedCerts" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "publicKey", "privateKey" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
}
},
"readProfileFromToken" : {
"type" : "boolean",
"description" : "???"
},
"sessionCookieValues" : {
"description" : "???",
"properties" : {
"httpOnly" : {
"type" : "boolean",
"description" : "???"
},
"secure" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
}
},
"type" : "object",
"description" : "???"
},
"otoroshi.next.extensions.Foo" : {
"type" : "object",
"description" : "???",
"properties" : {
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"id" : {
"type" : "string",
"description" : "???"
},
"name" : {
"type" : "string",
"description" : "???"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"description" : {
"type" : "string",
"description" : "???"
},
"_loc" : {
"description" : "???",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
}
}
},
"otoroshi.plugins.quotas.InstanceQuotas" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"ServiceFromOpenApiBody" : {
"type" : "object",
"description" : "Properties to create a service from an openapi spec",
"properties" : {
"domain" : {
"type" : "string",
"description" : "the domain on which the service will be exposed by otoroshi"
},
"openapi" : {
"type" : "string",
"description" : "the url to an openapi 3 spec or the content of an openapi 3 spec"
}
}
},
"otoroshi.next.plugins.JQRequest" : {
"type" : "object",
"description" : "???",
"properties" : {
"filter" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.models.GlobalJwtVerifier" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of verifier",
"enum" : [ "global" ]
},
"desc" : {
"type" : "string",
"description" : "Verifier description"
},
"name" : {
"type" : "string",
"description" : "Verifier name"
},
"strict" : {
"type" : "boolean",
"description" : "Does it fail if JWT not found"
},
"source" : {
"description" : "Where to find the jwt token",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "name" ]
}, {
"required" : [ "type", "name", "remove" ]
}, {
"required" : [ "type", "name" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of location",
"enum" : [ "InQueryParam", "InHeader", "InCookie" ]
},
"name" : {
"type" : "string",
"description" : "Query param name"
},
"remove" : {
"type" : "string",
"description" : "Remove from value"
}
}
},
"algoSettings" : {
"description" : "Algo settings of the verifier",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "size", "publicKey", "privateKey" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "secret", "base64" ]
}, {
"required" : [ "type", "url", "tlsConfig", "kty", "proxy", "headers", "ttl", "timeout" ]
}, {
"required" : [ "type", "onlyExposedCerts" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "publicKey", "privateKey" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
}
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Entity tags"
},
"id" : {
"type" : "string",
"description" : "Verifier id"
},
"_loc" : {
"description" : "Entity location",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"strategy" : {
"description" : "The strategy of the verifier",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "strict", "token", "verificationSettings" ]
}, {
"required" : [ "type", "verificationSettings" ]
}, {
"required" : [ "type", "verificationSettings", "algoSettings" ]
}, {
"required" : [ "type", "verificationSettings", "transformSettings", "algoSettings" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of strategy",
"enum" : [ "PassThrough", "Sign", "Transform", "DefaultToken" ]
},
"strict" : {
"type" : "boolean",
"description" : "If the token already exists in the request, then fail"
},
"token" : {
"type" : "object",
"description" : "The default token"
},
"verificationSettings" : {
"description" : "Verification settings",
"properties" : {
"fields" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Fields validation"
},
"arrayFields" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Fields array validation"
}
},
"type" : "object"
},
"algoSettings" : {
"description" : "Algorithm settings for re-signing token",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "size", "publicKey", "privateKey" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "secret", "base64" ]
}, {
"required" : [ "type", "url", "tlsConfig", "kty", "proxy", "headers", "ttl", "timeout" ]
}, {
"required" : [ "type", "onlyExposedCerts" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "publicKey", "privateKey" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
}
},
"transformSettings" : {
"description" : "Transformation settings",
"properties" : {
"location" : {
"description" : "Location of the token",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of location",
"enum" : [ "InQueryParam", "InHeader", "InCookie" ]
},
"name" : {
"type" : "string",
"description" : "Query param name"
},
"remove" : {
"type" : "string",
"description" : "Remove from value"
}
},
"type" : "object"
},
"mappingSettings" : {
"description" : "Token mapping settings",
"properties" : {
"map" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Change values"
},
"values" : {
"type" : "object",
"description" : "Add values"
},
"remove" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Remove some token claims"
}
},
"type" : "object"
}
},
"type" : "object"
}
}
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Entity metadata"
}
},
"type" : "object",
"description" : "Otoroshi model for JWT token verifier"
},
"otoroshi.models.ConsoleSettings" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of exporter",
"enum" : [ "elastic", "webhook", "kafka", "pulsar", "file", "mailer", "custom", "console", "metrics" ]
}
},
"type" : "object",
"description" : "???"
},
"otoroshi.models.TenantAccess" : {
"type" : "object",
"description" : "Access rights for organizations",
"properties" : {
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
}
}
},
"otoroshi.plugins.discovery.DiscoverySelfRegistrationTransformer" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.models.TargetPredicate" : {
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type" ]
}, {
"required" : [ "type", "dc" ]
}, {
"required" : [ "type", "positions" ]
}, {
"required" : [ "type", "provider" ]
}, {
"required" : [ "type", "provider", "dataCenter", "rack", "region", "zone" ]
}, {
"required" : [ "type", "rack" ]
}, {
"required" : [ "type", "region" ]
}, {
"required" : [ "type", "zone" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"dc" : {
"type" : "string",
"description" : "???"
},
"positions" : {
"type" : "array",
"items" : {
"properties" : {
"latitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"longitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"radius" : {
"type" : "number",
"format" : "double",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"provider" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataCenter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"rack" : {
"type" : "string",
"description" : "???"
},
"region" : {
"type" : "string",
"description" : "???"
},
"zone" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.models.IpStackGeolocationSettings" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of geolocation",
"enum" : [ "none", "maxmind", "ipstack" ]
},
"enabled" : {
"type" : "boolean",
"description" : "enable ipstack geolocation"
},
"apikey" : {
"type" : "string",
"description" : "IpStack apikey"
},
"timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "API call timeout"
}
},
"type" : "object",
"description" : "Settings for connection to IpStack"
},
"otoroshi.models.DefaultTemplates" : {
"type" : "object",
"description" : "The template that will be merged with newly created entities",
"properties" : {
"team" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"script" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"apikey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"group" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"tcpService" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"verifier" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"service" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"target" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certificate" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataExporter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"route" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"backend" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"template" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"tenant" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"authConfig" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"descriptor" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.next.plugins.NgGeolocationInfoHeaderConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"header_name" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.auth.SAMLSignature" : {
"type" : "object",
"description" : "???",
"properties" : {
"algorithm" : {
"description" : "???",
"properties" : { },
"type" : "object"
},
"canocalizationMethod" : {
"description" : "???",
"properties" : { },
"type" : "object"
}
}
},
"otoroshi.plugins.jobs.kubernetes.KubernetesAdmissionWebhookCRDValidator" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"UpdateQuotasBody" : {
"type" : "string",
"description" : ""
},
"otoroshi.next.plugins.MissingHeadersIn" : {
"type" : "object",
"description" : "???",
"properties" : {
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgMaxMindGeolocationInfoExtractorConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"path" : {
"type" : "string",
"description" : "???"
},
"log" : {
"type" : "boolean",
"description" : "???"
}
}
},
"otoroshi.plugins.clientcert.HasClientCertMatchingHttpValidator" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.models.S3ExporterSettings" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of exporter",
"enum" : [ "elastic", "webhook", "kafka", "pulsar", "file", "mailer", "custom", "console", "metrics" ]
},
"maxFileSize" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"config" : {
"description" : "???",
"properties" : {
"writeEvery" : {
"type" : "number",
"description" : "Write every n milliseconds"
},
"chunkSize" : {
"type" : "integer",
"format" : "int32",
"description" : "Upload chunk max size"
},
"bucket" : {
"type" : "string",
"description" : "Bucket name"
},
"key" : {
"type" : "string",
"description" : "File path in bucket"
},
"endpoint" : {
"type" : "string",
"description" : "Bucket endpoint"
},
"v4auth" : {
"type" : "boolean",
"description" : "Use V4 auth"
},
"access" : {
"type" : "string",
"description" : "Bucket access key"
},
"secret" : {
"type" : "string",
"description" : "Bucket access secret"
},
"region" : {
"type" : "string",
"description" : "Bucket region"
}
},
"type" : "object"
}
},
"type" : "object",
"description" : "???"
},
"otoroshi.plugins.jobs.kubernetes.ClientSupport" : {
"type" : "object",
"description" : "???",
"properties" : {
"client" : {
"description" : "???",
"properties" : {
"config" : {
"description" : "???",
"properties" : {
"endpoint" : {
"type" : "string",
"description" : "???"
},
"templates" : {
"type" : "object",
"description" : "???"
},
"token" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"restartDependantDeployments" : {
"type" : "boolean",
"description" : "???"
},
"watchGracePeriodSeconds" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"connectionTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"crds" : {
"type" : "boolean",
"description" : "???"
},
"watch" : {
"type" : "boolean",
"description" : "???"
},
"labels" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"openshiftDnsOperatorCoreDnsName" : {
"type" : "string",
"description" : "???"
},
"syncIntervalSeconds" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"kubeDnsOperatorCoreDnsName" : {
"type" : "string",
"description" : "???"
},
"defaultGroup" : {
"type" : "string",
"description" : "???"
},
"kubeDnsOperatorCoreDnsNamespace" : {
"type" : "string",
"description" : "???"
},
"triggerKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"otoroshiNamespace" : {
"type" : "string",
"description" : "???"
},
"watchTimeoutSeconds" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"openshiftDnsOperatorCleanupDomains" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"namespaces" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"openshiftDnsOperatorCoreDnsPort" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"coreDnsEnv" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"triggerPath" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"image" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"coreDnsConfigMapName" : {
"type" : "string",
"description" : "???"
},
"clusterDomain" : {
"type" : "string",
"description" : "???"
},
"idleTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"caCert" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"trust" : {
"type" : "boolean",
"description" : "???"
},
"ingressClasses" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"userPassword" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"syncDaikokuApikeysOnly" : {
"type" : "boolean",
"description" : "???"
},
"openshiftDnsOperatorCleanup" : {
"type" : "boolean",
"description" : "???"
},
"kubeSystemNamespace" : {
"type" : "string",
"description" : "???"
},
"ingressEndpointIp" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"namespacesLabels" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"openshiftDnsOperatorCleanupNames" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"kubeDnsOperatorCoreDnsPort" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"mutatingWebhookName" : {
"type" : "string",
"description" : "???"
},
"kubeLeader" : {
"type" : "boolean",
"description" : "???"
},
"ingressEndpointHostname" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"openshiftDnsOperatorIntegration" : {
"type" : "boolean",
"description" : "???"
},
"validatingWebhookName" : {
"type" : "string",
"description" : "???"
},
"coreDnsDeploymentName" : {
"type" : "string",
"description" : "???"
},
"ingresses" : {
"type" : "boolean",
"description" : "???"
},
"useProxyState" : {
"type" : "boolean",
"description" : "???"
},
"coreDnsIntegrationDryRun" : {
"type" : "boolean",
"description" : "???"
},
"ingressEndpointPublishedService" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"coreDnsAzure" : {
"type" : "boolean",
"description" : "???"
},
"corednsPort" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"coreDnsIntegration" : {
"type" : "boolean",
"description" : "???"
},
"otoroshiServiceName" : {
"type" : "string",
"description" : "???"
},
"meshDomain" : {
"type" : "string",
"description" : "???"
},
"kubeDnsOperatorIntegration" : {
"type" : "boolean",
"description" : "???"
},
"triggerHost" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"openshiftDnsOperatorCoreDnsNamespace" : {
"type" : "string",
"description" : "???"
},
"callAndStreamTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
}
},
"type" : "object"
},
"env" : {
"description" : "???",
"properties" : {
"circuitBeakersHolder" : {
"description" : "???",
"properties" : { },
"type" : "object"
}
},
"type" : "object"
}
},
"type" : "object"
},
"env" : {
"description" : "???",
"properties" : {
"circuitBeakersHolder" : {
"description" : "???",
"properties" : { },
"type" : "object"
}
},
"type" : "object"
}
}
},
"otoroshi.plugins.core.DefaultPlugins" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.NgJwtUserExtractor" : {
"type" : "object",
"description" : "???",
"properties" : {
"meta_path" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"strip" : {
"type" : "boolean",
"description" : "???"
},
"verifier" : {
"type" : "string",
"description" : "???"
},
"email_path" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"strict" : {
"type" : "boolean",
"description" : "???"
},
"name_path" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.models.DataExporterConfigFiltering" : {
"type" : "object",
"description" : "???",
"properties" : {
"include" : {
"type" : "array",
"items" : {
"type" : "object"
},
"description" : "???"
},
"exclude" : {
"type" : "array",
"items" : {
"type" : "object"
},
"description" : "???"
}
}
},
"otoroshi.next.plugins.EurekaServerSink" : {
"type" : "object",
"description" : "???",
"properties" : {
"eviction_timeout" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
}
},
"PluginDescription" : {
"type" : "object",
"description" : "Description of a plugin",
"properties" : {
"id" : {
"type" : "string",
"description" : "the id of the plugin"
},
"name" : {
"type" : "string",
"description" : "the name of the plugin"
},
"description" : {
"type" : "string",
"description" : "the description of the plugin"
},
"default_config" : {
"type" : "string",
"description" : "the default config of the plugin (for UI form)"
},
"config_schema" : {
"type" : "string",
"description" : "the config schema of the plugin (for UI form)"
},
"config_flow" : {
"type" : "array",
"description" : "the config flow of the plugin (for UI form)",
"items" : {
"type" : "string"
}
},
"plugin_visibility" : {
"type" : "string",
"description" : "visibility of the plugin (can be internal or userland)"
},
"plugin_categories" : {
"type" : "array",
"description" : "categories of the plugin",
"items" : { }
},
"plugin_steps" : {
"type" : "array",
"description" : "steps of the plugin",
"items" : { }
},
"plugin_tags" : {
"type" : "array",
"description" : "tags of the plugin",
"items" : { }
}
}
},
"otoroshi.models.RouteIdentifier" : {
"type" : "object",
"description" : "???",
"properties" : {
"id" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.plugins.static.StaticResponse" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.NgErrorRewriterConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"ranges" : {
"type" : "array",
"items" : {
"properties" : {
"from" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"to" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"templates" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"log" : {
"type" : "boolean",
"description" : "???"
},
"export" : {
"type" : "boolean",
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgHasClientCertMatchingApikeyValidator" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.plugins.apikeys.CertificateAsApikey" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.GraphQLQueryConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"response_path" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"url" : {
"type" : "string",
"description" : "???"
},
"response_filter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"query" : {
"type" : "string",
"description" : "???"
},
"method" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgDiscoverySelfRegistrationConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"raw" : {
"type" : "object",
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgDefaultRequestBodyConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"content_type" : {
"type" : "string",
"description" : "???"
},
"content_encoding" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.plugins.oidc.OIDCThirdPartyApiKeyConfigMode" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.models.ServiceGroup" : {
"type" : "object",
"description" : "The otoroshi model for a group of services",
"properties" : {
"id" : {
"type" : "string",
"description" : "A unique random string to identify your service"
},
"_loc" : {
"description" : "Entity location",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"name" : {
"type" : "string",
"description" : "The name of your service. Only for debug and human readability purposes"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Just a bunch of random properties"
},
"description" : {
"type" : "string",
"description" : "Entity description"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Entity tags"
}
}
},
"otoroshi.next.plugins.NgIpStackGeolocationInfoExtractorConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"apikey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"log" : {
"type" : "boolean",
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgHasClientCertMatchingValidatorConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"subject_dns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"serial_numbers" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"issuer_dns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"regex_issuer_dns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"regex_subject_dns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.greenscore.Rule" : {
"type" : "object",
"description" : "???",
"properties" : {
"sectionWeight" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"advice" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"weight" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"id" : {
"description" : "???",
"properties" : {
"value" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.next.plugins.NgDiscoverySelfRegistrationSink" : {
"type" : "object",
"description" : "???",
"properties" : {
"raw" : {
"type" : "object",
"description" : "???"
}
}
},
"otoroshi.auth.OAuth1Provider" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.XmlToJsonRequest" : {
"type" : "object",
"description" : "???",
"properties" : {
"filter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.plugins.discovery.DiscoveryHelper" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.ssl.pki.models.GenCsrQuery" : {
"type" : "object",
"description" : "Settings for generating a certificate",
"properties" : {
"client" : {
"type" : "boolean",
"description" : "Is cert client ?"
},
"hosts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Certificate SANs"
},
"key" : {
"description" : "Keypair specs",
"properties" : {
"algo" : {
"type" : "string",
"description" : "Keypair algorithm"
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "Keypair size"
}
},
"type" : "object"
},
"includeAIA" : {
"type" : "boolean",
"description" : "Include AIA extension (if generated from otoroshi CA)"
},
"signatureAlg" : {
"type" : "string",
"description" : "Signature algorithm"
},
"existingSerialNumber" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"duration" : {
"type" : "number",
"description" : "Certificate lifespan"
},
"digestAlg" : {
"type" : "string",
"description" : "Digest algo"
},
"ca" : {
"type" : "boolean",
"description" : "Is cert ca ?"
},
"name" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Certificate name"
},
"subject" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.next.plugins.NgApikeyMatcher" : {
"type" : "object",
"description" : "???",
"properties" : {
"none_meta_keys_in" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"all_meta_keys_in" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"all_meta_in" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"none_meta_in" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"one_tag_in" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"one_meta_in" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"all_tags_in" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"one_meta_key_in" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"none_tag_in" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.next.plugins.GraphQLBackendConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"schema" : {
"type" : "string",
"description" : "???"
},
"permissions" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"initial_data" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"max_depth" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
}
},
"otoroshi.plugins.apikeys.HasAllowedApiKeyValidator" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.models.NetworkLocationMatch" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"provider" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataCenter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"rack" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"region" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"zone" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object",
"description" : "???"
},
"otoroshi.next.plugins.NgUserAgentInfoHeader" : {
"type" : "object",
"description" : "???",
"properties" : {
"header_name" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.script.PluginType" : {
"type" : "string",
"enum" : [ "app", "transformer", "validator", "preroute", "sink", "listener", "job", "exporter" ],
"description" : "Plugin kind"
},
"otoroshi.next.plugins.MultiAuthModule" : {
"type" : "object",
"description" : "???",
"properties" : {
"modules" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"pass_with_apikey" : {
"type" : "boolean",
"description" : "???"
},
"use_email_prompt" : {
"type" : "boolean",
"description" : "???"
},
"users_groups" : {
"type" : "object",
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgServiceQuotasConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"throttling_quota" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"daily_quota" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"monthly_quota" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
}
}
},
"otoroshi.utils.mailer.ConsoleMailerSettings" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of exporter",
"enum" : [ "elastic", "webhook", "kafka", "pulsar", "file", "mailer", "custom", "console", "metrics" ]
}
},
"type" : "object",
"description" : "Settings for the console mailer"
},
"otoroshi.plugins.oauth1.OAuth1CallerPlugin" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.XmlToJsonResponse" : {
"type" : "object",
"description" : "???",
"properties" : {
"filter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.models.DataExporterConfigType" : {
"type" : "string",
"enum" : [ "kafka", "pulsar", "elastic", "webhook", "file", "mailer", "custom", "none", "console", "metrics" ],
"description" : "Type of data exporter"
},
"otoroshi.next.plugins.NgIzanamiV1CanaryRoutingConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"routes" : {
"type" : "array",
"items" : {
"properties" : {
"regex" : {
"type" : "boolean",
"description" : "???"
},
"default" : {
"type" : "string",
"description" : "???"
},
"route" : {
"type" : "string",
"description" : "???"
},
"wildcard" : {
"type" : "boolean",
"description" : "???"
},
"exact" : {
"type" : "boolean",
"description" : "???"
},
"variants" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
}
}
},
"otoroshi.plugins.jobs.kubernetes.FailedCrdParsing" : {
"type" : "object",
"description" : "???",
"properties" : {
"crd" : {
"type" : "object",
"description" : "???"
},
"namespace" : {
"type" : "string",
"description" : "???"
},
"pluralName" : {
"type" : "string",
"description" : "???"
},
"error" : {
"type" : "string",
"description" : "???"
},
"customizedSpec" : {
"type" : "object",
"description" : "???"
}
}
},
"otoroshi.script.Script" : {
"type" : "object",
"description" : "An otoroshi plugins stored as scala code in the otoroshi datastore",
"properties" : {
"name" : {
"type" : "string",
"description" : "The name of the script"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Entity metadata"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Entity tags"
},
"_loc" : {
"description" : "Entity location",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"desc" : {
"type" : "string",
"description" : "The description of the script"
},
"code" : {
"type" : "string",
"description" : "The code of the script"
},
"id" : {
"type" : "string",
"description" : "The id of the script"
},
"type" : {
"description" : "Plugin kind",
"type" : "string",
"enum" : [ "app", "transformer", "validator", "preroute", "sink", "listener", "job", "exporter" ]
}
}
},
"otoroshi.next.plugins.MockEndpoint" : {
"type" : "object",
"description" : "???",
"properties" : {
"status" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"body" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"path" : {
"type" : "string",
"description" : "???"
},
"resource" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"headers" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"method" : {
"type" : "string",
"description" : "???"
},
"resource_list" : {
"type" : "boolean",
"description" : "???"
}
}
},
"otoroshi.next.plugins.EurekaApp" : {
"type" : "object",
"description" : "???",
"properties" : {
"name" : {
"type" : "string",
"description" : "???"
},
"instances" : {
"type" : "array",
"items" : {
"properties" : {
"hostname" : {
"type" : "string",
"description" : "???"
},
"vip_address" : {
"type" : "string",
"description" : "???"
},
"home_page_url" : {
"type" : "string",
"description" : "???"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"last_dirty_timestamp" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"is_secured" : {
"type" : "boolean",
"description" : "???"
},
"ip_addr" : {
"type" : "string",
"description" : "???"
},
"last_updated_timestamp" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"app" : {
"type" : "string",
"description" : "???"
},
"overridden_status" : {
"type" : "string",
"description" : "???"
},
"status_page_url" : {
"type" : "string",
"description" : "???"
},
"is_coordinating_discovery_server" : {
"type" : "string",
"description" : "???"
},
"instance_id" : {
"type" : "string",
"description" : "???"
},
"secure_vip_address" : {
"type" : "string",
"description" : "???"
},
"status" : {
"type" : "string",
"description" : "???"
},
"port" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"secure_port" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"health_check_url" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
}
}
},
"otoroshi.storage.drivers.inmemory.S3Configuration" : {
"type" : "object",
"description" : "S3 bucket settings",
"properties" : {
"writeEvery" : {
"type" : "number",
"description" : "Write every n milliseconds"
},
"chunkSize" : {
"type" : "integer",
"format" : "int32",
"description" : "Upload chunk max size"
},
"bucket" : {
"type" : "string",
"description" : "Bucket name"
},
"key" : {
"type" : "string",
"description" : "File path in bucket"
},
"endpoint" : {
"type" : "string",
"description" : "Bucket endpoint"
},
"v4auth" : {
"type" : "boolean",
"description" : "Use V4 auth"
},
"access" : {
"type" : "string",
"description" : "Bucket access key"
},
"secret" : {
"type" : "string",
"description" : "Bucket access secret"
},
"region" : {
"type" : "string",
"description" : "Bucket region"
}
}
},
"otoroshi.plugins.jobs.kubernetes.KubernetesToOtoroshiCertSyncJob" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.JwtVerificationOnly" : {
"type" : "object",
"description" : "???",
"properties" : {
"verifier" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"fail_if_absent" : {
"type" : "boolean",
"description" : "???"
}
}
},
"otoroshi.plugins.clientcert.SubIss" : {
"type" : "object",
"description" : "???",
"properties" : {
"sn" : {
"type" : "string",
"description" : "???"
},
"subject" : {
"description" : "???",
"type" : "string"
},
"issuer" : {
"description" : "???",
"type" : "string"
}
}
},
"otoroshi.next.plugins.HMACCallerConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"secret" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"algo" : {
"type" : "string",
"description" : "???"
},
"authorization_header" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.utils.mailer.MailjetSettings" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of exporter",
"enum" : [ "elastic", "webhook", "kafka", "pulsar", "file", "mailer", "custom", "console", "metrics" ]
},
"apiKeyPublic" : {
"type" : "string",
"description" : "Public key"
},
"apiKeyPrivate" : {
"type" : "string",
"description" : "Private key"
},
"to" : {
"type" : "array",
"items" : {
"properties" : {
"name" : {
"type" : "string",
"description" : "Destination name"
},
"email" : {
"type" : "string",
"description" : "Email address"
}
},
"type" : "object"
},
"description" : "Destination email address"
}
},
"type" : "object",
"description" : "Settings for the mailjet mailer"
},
"otoroshi.wasm.WasmDataRights" : {
"type" : "object",
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
}
},
"play.api.libs.ws.WSProxyServer" : {
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
},
"description" : "Proxy server"
},
"otoroshi.next.plugins.GlobalPerIpAddressThrottlingQuotas" : {
"type" : "object",
"description" : "???",
"properties" : {
"within" : {
"type" : "boolean",
"description" : "???"
},
"sec_calls" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
}
}
},
"otoroshi.plugins.loggers.BodyLoggerConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"json" : {
"type" : "object",
"description" : "???"
}
}
},
"otoroshi.models.ServiceDescriptorIdentifier" : {
"type" : "string",
"description" : "the id of a service prefixed by 'service_'"
},
"otoroshi.greenscore.GreenScoreConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"sections" : {
"type" : "array",
"items" : {
"properties" : {
"id" : {
"description" : "???",
"properties" : {
"value" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"rules" : {
"type" : "array",
"items" : {
"properties" : {
"sectionWeight" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"advice" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"weight" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"id" : {
"description" : "???",
"properties" : {
"value" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"thresholds" : {
"description" : "???",
"properties" : {
"plugins" : {
"description" : "???",
"properties" : {
"excellent" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"sufficient" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"poor" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
},
"type" : "object"
},
"dataOut" : {
"description" : "???",
"properties" : {
"excellent" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"sufficient" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"poor" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
},
"type" : "object"
},
"headersOut" : {
"description" : "???",
"properties" : {
"excellent" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"sufficient" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"poor" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
},
"type" : "object"
}
},
"type" : "object"
}
}
},
"otoroshi.models.SecComHeaders" : {
"type" : "object",
"description" : "???",
"properties" : {
"claimRequestName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"stateRequestName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"stateResponseName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.auth.SAMLCredentials" : {
"type" : "object",
"description" : "???",
"properties" : {
"signingKey" : {
"description" : "???",
"properties" : {
"certificate" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"useOtoroshiCertificate" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"encryptionKey" : {
"description" : "???",
"properties" : {
"certificate" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"useOtoroshiCertificate" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"signedDocuments" : {
"type" : "boolean",
"description" : "???"
},
"encryptedAssertions" : {
"type" : "boolean",
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgApikeyExtractorCustomHeaders" : {
"type" : "object",
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"client_id_header_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"client_secret_header_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.tcp.TlsMode" : {
"type" : "string",
"enum" : [ "Disabled", "Enabled", "PassThrough" ],
"description" : "TLS mode"
},
"otoroshi.models.ESKPAlgoSettings" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "Size of the key"
},
"certId" : {
"type" : "string",
"description" : "Certificate id to use the keypair"
}
},
"type" : "object",
"description" : "Settings to use elliptic curve signing algorithm from a certificate keypair"
},
"otoroshi.plugins.users.HasAllowedUsersValidator" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.S3BackendConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"s3" : {
"description" : "???",
"properties" : {
"writeEvery" : {
"type" : "number",
"description" : "Write every n milliseconds"
},
"chunkSize" : {
"type" : "integer",
"format" : "int32",
"description" : "Upload chunk max size"
},
"bucket" : {
"type" : "string",
"description" : "Bucket name"
},
"key" : {
"type" : "string",
"description" : "File path in bucket"
},
"endpoint" : {
"type" : "string",
"description" : "Bucket endpoint"
},
"v4auth" : {
"type" : "boolean",
"description" : "Use V4 auth"
},
"access" : {
"type" : "string",
"description" : "Bucket access key"
},
"secret" : {
"type" : "string",
"description" : "Bucket access secret"
},
"region" : {
"type" : "string",
"description" : "Bucket region"
}
},
"type" : "object"
}
}
},
"otoroshi.next.models.NgTreeRouter" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"AuditEventList" : {
"type" : "array",
"items" : {
"properties" : {
"type" : "object",
"description" : "Audit trail event"
},
"type" : "object"
}
},
"otoroshi.next.plugins.NgCorsSettings" : {
"type" : "object",
"description" : "???",
"properties" : {
"allow_credentials" : {
"type" : "boolean",
"description" : "???"
},
"max_age" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"allow_origin" : {
"type" : "string",
"description" : "???"
},
"allow_methods" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"excluded_patterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allow_headers" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"expose_headers" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.next.plugins.OIDCHeadersConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"profile" : {
"description" : "???",
"properties" : {
"send" : {
"type" : "boolean",
"description" : "???"
},
"header_name" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"idtoken" : {
"description" : "???",
"properties" : {
"send" : {
"type" : "boolean",
"description" : "???"
},
"name" : {
"type" : "string",
"description" : "???"
},
"header_name" : {
"type" : "string",
"description" : "???"
},
"jwt" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"access_token" : {
"description" : "???",
"properties" : {
"send" : {
"type" : "boolean",
"description" : "???"
},
"name" : {
"type" : "string",
"description" : "???"
},
"header_name" : {
"type" : "string",
"description" : "???"
},
"jwt" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
}
}
},
"otoroshi.models.ServiceDescriptor" : {
"type" : "object",
"description" : "???",
"properties" : {
"buildMode" : {
"type" : "boolean",
"description" : "???"
},
"hosts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"privateApp" : {
"type" : "boolean",
"description" : "???"
},
"localScheme" : {
"type" : "string",
"description" : "???"
},
"authConfigRef" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"issueCertCA" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"root" : {
"type" : "string",
"description" : "???"
},
"name" : {
"type" : "string",
"description" : "???"
},
"additionalHeaders" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"domain" : {
"type" : "string",
"description" : "???"
},
"clientConfig" : {
"description" : "???",
"properties" : {
"connectionTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"useCircuitBreaker" : {
"type" : "boolean",
"description" : "???"
},
"retryInitialDelay" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"cacheConnectionSettings" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"queueSize" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
},
"type" : "object"
},
"proxy" : {
"description" : "???",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"callTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"callAndStreamTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"globalTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"maxErrors" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"retries" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"backoffFactor" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"customTimeouts" : {
"type" : "array",
"items" : {
"properties" : {
"path" : {
"type" : "string",
"description" : "???"
},
"callAndStreamTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"callTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"idleTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"globalTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"connectionTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"idleTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"sampleInterval" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
}
},
"type" : "object"
},
"matchingRoot" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"forceHttps" : {
"type" : "boolean",
"description" : "???"
},
"localHost" : {
"type" : "string",
"description" : "???"
},
"sendOtoroshiHeadersBack" : {
"type" : "boolean",
"description" : "???"
},
"healthCheck" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"url" : {
"type" : "string",
"description" : "???"
},
"timeout" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
},
"type" : "object"
},
"strictlyPrivate" : {
"type" : "boolean",
"description" : "???"
},
"detectApiKeySooner" : {
"type" : "boolean",
"description" : "???"
},
"allowHttp10" : {
"type" : "boolean",
"description" : "???"
},
"subdomain" : {
"type" : "string",
"description" : "???"
},
"paths" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"stripPath" : {
"type" : "boolean",
"description" : "???"
},
"secComAlgoChallengeOtoToBack" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "size", "publicKey", "privateKey" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "secret", "base64" ]
}, {
"required" : [ "type", "url", "tlsConfig", "kty", "proxy", "headers", "ttl", "timeout" ]
}, {
"required" : [ "type", "onlyExposedCerts" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "publicKey", "privateKey" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
}
},
"apiKeyConstraints" : {
"description" : "???",
"properties" : {
"customHeadersAuth" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"clientIdHeaderName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"clientSecretHeaderName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"routing" : {
"description" : "???",
"properties" : {
"oneTagIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"noneMetaKeysIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"oneMetaIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"oneMetaKeyIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allMetaKeysIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"noneTagIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allTagsIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allMetaIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"noneMetaIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"clientIdAuth" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"headerName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"queryName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"jwtAuth" : {
"description" : "???",
"properties" : {
"keyPairSigned" : {
"type" : "boolean",
"description" : "???"
},
"cookieName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"queryName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"headerName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"secretSigned" : {
"type" : "boolean",
"description" : "???"
},
"maxJwtLifespanSecs" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"includeRequestAttributes" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"basicAuth" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"headerName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"queryName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
}
},
"type" : "object"
},
"env" : {
"type" : "string",
"description" : "???"
},
"xForwardedHeaders" : {
"type" : "boolean",
"description" : "???"
},
"transformerRefs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"gzip" : {
"description" : "???",
"properties" : {
"compressionLevel" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"blackList" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"chunkedThreshold" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"bufferSize" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"whiteList" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"sendInfoToken" : {
"type" : "boolean",
"description" : "???"
},
"tcpUdpTunneling" : {
"type" : "boolean",
"description" : "???"
},
"removeHeadersOut" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"useAkkaHttpClient" : {
"type" : "boolean",
"description" : "???"
},
"maintenanceMode" : {
"type" : "boolean",
"description" : "???"
},
"id" : {
"type" : "string",
"description" : "???"
},
"removeHeadersIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"logAnalyticsOnServer" : {
"type" : "boolean",
"description" : "???"
},
"secComAlgoInfoToken" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "size", "publicKey", "privateKey" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "secret", "base64" ]
}, {
"required" : [ "type", "url", "tlsConfig", "kty", "proxy", "headers", "ttl", "timeout" ]
}, {
"required" : [ "type", "onlyExposedCerts" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "publicKey", "privateKey" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
}
},
"userFacing" : {
"type" : "boolean",
"description" : "???"
},
"transformerConfig" : {
"type" : "object",
"description" : "???"
},
"clientValidatorRef" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"securityExcludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"ipFiltering" : {
"description" : "???",
"properties" : {
"whitelist" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"blacklist" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"targets" : {
"type" : "array",
"items" : {
"properties" : {
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"host" : {
"type" : "string",
"description" : "???"
},
"weight" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"protocol" : {
"type" : "string",
"enum" : [ "HTTP/1.0", "HTTP/1.1", "HTTP/2.0", "HTTP/3.0" ],
"description" : "???"
},
"predicate" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"dc" : {
"type" : "string",
"description" : "???"
},
"positions" : {
"type" : "array",
"items" : {
"properties" : {
"latitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"longitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"radius" : {
"type" : "number",
"format" : "double",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"provider" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataCenter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"rack" : {
"type" : "string",
"description" : "???"
},
"region" : {
"type" : "string",
"description" : "???"
},
"zone" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"ipAddress" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"mtlsConfig" : {
"description" : "???",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"scheme" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"redirection" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"code" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"to" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"restrictions" : {
"description" : "???",
"properties" : {
"forbidden" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"allowed" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"notFound" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"allowLast" : {
"type" : "boolean",
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"overrideHost" : {
"type" : "boolean",
"description" : "???"
},
"accessValidator" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"refs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"config" : {
"type" : "object",
"description" : "???"
}
},
"type" : "object"
},
"sendStateChallenge" : {
"type" : "boolean",
"description" : "???"
},
"chaosConfig" : {
"description" : "???",
"properties" : {
"badResponsesFaultConfig" : {
"description" : "Settings for bad responses",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"responses" : {
"type" : "array",
"items" : {
"properties" : {
"status" : {
"type" : "integer",
"format" : "int32",
"description" : "The HTTP status for the response"
},
"body" : {
"type" : "string",
"description" : "The body of the HTTP response"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "The HTTP headers of the response"
}
},
"type" : "object"
},
"description" : "The possibles responses"
}
}
},
"largeRequestFaultConfig" : {
"description" : "Settings for large requests",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"additionalRequestSize" : {
"type" : "integer",
"format" : "int32",
"description" : "The size added to the request body in bytes. Added payload will be spaces only."
}
}
},
"largeResponseFaultConfig" : {
"description" : "Settings for large responses",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"additionalResponseSize" : {
"type" : "integer",
"format" : "int32",
"description" : "Add n 0 bytes"
}
}
},
"latencyInjectionFaultConfig" : {
"description" : "Settings for latency injection",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"from" : {
"type" : "number",
"description" : "The start range of latency added to the request"
},
"to" : {
"type" : "number",
"description" : "The end range of latency added to the request"
}
}
},
"enabled" : {
"type" : "boolean",
"description" : "Whether or not this config is enabled"
}
},
"type" : "object"
},
"secComInfoTokenVersion" : {
"description" : "Version of the info token",
"type" : "string",
"enum" : [ "Legacy", "Latest" ]
},
"additionalHeadersOut" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"secComHeaders" : {
"description" : "???",
"properties" : {
"claimRequestName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"stateRequestName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"stateResponseName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"matchingHeaders" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"secComAlgoChallengeBackToOto" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "size", "publicKey", "privateKey" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "secret", "base64" ]
}, {
"required" : [ "type", "url", "tlsConfig", "kty", "proxy", "headers", "ttl", "timeout" ]
}, {
"required" : [ "type", "onlyExposedCerts" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "publicKey", "privateKey" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
}
},
"secComUseSameAlgo" : {
"type" : "boolean",
"description" : "???"
},
"useNewWSClient" : {
"type" : "boolean",
"description" : "???"
},
"secComExcludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"redirectToLocal" : {
"type" : "boolean",
"description" : "???"
},
"enforceSecureCommunication" : {
"type" : "boolean",
"description" : "???"
},
"missingOnlyHeadersOut" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"secComSettings" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "size", "publicKey", "privateKey" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "secret", "base64" ]
}, {
"required" : [ "type", "url", "tlsConfig", "kty", "proxy", "headers", "ttl", "timeout" ]
}, {
"required" : [ "type", "onlyExposedCerts" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "publicKey", "privateKey" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
}
},
"handleLegacyDomain" : {
"type" : "boolean",
"description" : "???"
},
"canary" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"traffic" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"targets" : {
"type" : "array",
"items" : {
"properties" : {
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"host" : {
"type" : "string",
"description" : "???"
},
"weight" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"protocol" : {
"type" : "string",
"enum" : [ "HTTP/1.0", "HTTP/1.1", "HTTP/2.0", "HTTP/3.0" ],
"description" : "???"
},
"predicate" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"dc" : {
"type" : "string",
"description" : "???"
},
"positions" : {
"type" : "array",
"items" : {
"properties" : {
"latitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"longitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"radius" : {
"type" : "number",
"format" : "double",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"provider" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataCenter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"rack" : {
"type" : "string",
"description" : "???"
},
"region" : {
"type" : "string",
"description" : "???"
},
"zone" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"ipAddress" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"mtlsConfig" : {
"description" : "???",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"scheme" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"root" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"_loc" : {
"description" : "???",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"plugins" : {
"description" : "???",
"properties" : {
"config" : {
"type" : "object",
"description" : "Plugins configuration"
},
"enabled" : {
"type" : "boolean",
"description" : "Plugins enabled"
},
"excluded" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Excluded paths"
},
"refs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Enabled plugins"
}
},
"type" : "object"
},
"secComTtl" : {
"type" : "number",
"description" : "???"
},
"description" : {
"type" : "string",
"description" : "???"
},
"secComVersion" : {
"description" : "Version of the challenge token",
"type" : "string",
"enum" : [ "V1", "v2" ]
},
"preRouting" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"refs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"config" : {
"type" : "object",
"description" : "???"
}
},
"type" : "object"
},
"groups" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"readOnly" : {
"type" : "boolean",
"description" : "???"
},
"privatePatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"targetsLoadBalancing" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"enum" : [ "BestResponseTime", "IpAddressHash", "Random", "RoundRobin", "Sticky", "WeightedBestResponseTime" ]
},
"ratio" : {
"type" : "number",
"format" : "double"
}
},
"type" : "object"
},
"cors" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"allowCredentials" : {
"type" : "boolean",
"description" : "???"
},
"maxAge" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"allowMethods" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allowHeaders" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"exposeHeaders" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allowOrigin" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"publicPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"api" : {
"description" : "???",
"properties" : {
"exposeApi" : {
"type" : "boolean",
"description" : "???"
},
"openApiDescriptorUrl" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"missingOnlyHeadersIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"issueCert" : {
"type" : "boolean",
"description" : "???"
},
"headersVerification" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"jwtVerifier" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "desc", "name", "strict", "source", "algoSettings", "tags", "id", "_loc", "strategy", "metadata" ]
}, {
"required" : [ "type", "strict", "source", "algoSettings", "enabled", "excludedPatterns", "strategy" ]
}, {
"required" : [ "type", "excludedPatterns", "enabled", "ids" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of verifier",
"enum" : [ "global", "local", "ref" ]
},
"desc" : {
"type" : "string",
"description" : "Verifier description"
},
"name" : {
"type" : "string",
"description" : "Verifier name"
},
"strict" : {
"type" : "boolean",
"description" : "???"
},
"source" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "name" ]
}, {
"required" : [ "type", "name", "remove" ]
}, {
"required" : [ "type", "name" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of location",
"enum" : [ "InQueryParam", "InHeader", "InCookie" ]
},
"name" : {
"type" : "string",
"description" : "Query param name"
},
"remove" : {
"type" : "string",
"description" : "Remove from value"
}
}
},
"algoSettings" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
},
"type" : "object"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Entity tags"
},
"id" : {
"type" : "string",
"description" : "Verifier id"
},
"_loc" : {
"description" : "Entity location",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"strategy" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "strict", "token", "verificationSettings" ]
}, {
"required" : [ "type", "verificationSettings" ]
}, {
"required" : [ "type", "verificationSettings", "algoSettings" ]
}, {
"required" : [ "type", "verificationSettings", "transformSettings", "algoSettings" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of strategy",
"enum" : [ "PassThrough", "Sign", "Transform", "DefaultToken" ]
},
"strict" : {
"type" : "boolean",
"description" : "If the token already exists in the request, then fail"
},
"token" : {
"type" : "object",
"description" : "The default token"
},
"verificationSettings" : {
"description" : "Verification settings",
"properties" : {
"fields" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Fields validation"
},
"arrayFields" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Fields array validation"
}
},
"type" : "object"
},
"algoSettings" : {
"description" : "Algorithm settings for re-signing token",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "size", "publicKey", "privateKey" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "secret", "base64" ]
}, {
"required" : [ "type", "url", "tlsConfig", "kty", "proxy", "headers", "ttl", "timeout" ]
}, {
"required" : [ "type", "onlyExposedCerts" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "publicKey", "privateKey" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
}
},
"transformSettings" : {
"description" : "Transformation settings",
"properties" : {
"location" : {
"description" : "Location of the token",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of location",
"enum" : [ "InQueryParam", "InHeader", "InCookie" ]
},
"name" : {
"type" : "string",
"description" : "Query param name"
},
"remove" : {
"type" : "string",
"description" : "Remove from value"
}
},
"type" : "object"
},
"mappingSettings" : {
"description" : "Token mapping settings",
"properties" : {
"map" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Change values"
},
"values" : {
"type" : "object",
"description" : "Add values"
},
"remove" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Remove some token claims"
}
},
"type" : "object"
}
},
"type" : "object"
}
}
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Entity metadata"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"ids" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"letsEncrypt" : {
"type" : "boolean",
"description" : "???"
}
}
},
"otoroshi.next.plugins.UdpTunnel" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.plugins.izanami.IzanamiCanaryConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"izanamiClientId" : {
"type" : "string",
"description" : "???"
},
"configId" : {
"type" : "string",
"description" : "???"
},
"experimentId" : {
"type" : "string",
"description" : "???"
},
"mtls" : {
"description" : "???",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"izanamiUrl" : {
"type" : "string",
"description" : "???"
},
"timeout" : {
"type" : "number",
"description" : "???"
},
"izanamiClientSecret" : {
"type" : "string",
"description" : "???"
},
"routeConfig" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.next.plugins.RemoveHeadersIn" : {
"type" : "object",
"description" : "???",
"properties" : {
"names" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.next.plugins.RobotConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"robot_txt_content" : {
"type" : "string",
"description" : "???"
},
"meta_content" : {
"type" : "string",
"description" : "???"
},
"robot_enabled" : {
"type" : "boolean",
"description" : "???"
},
"header_content" : {
"type" : "string",
"description" : "???"
},
"header_enabled" : {
"type" : "boolean",
"description" : "???"
},
"meta_enabled" : {
"type" : "boolean",
"description" : "???"
}
}
},
"otoroshi.plugins.jobs.kubernetes.KubernetesSupport" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.plugins.metrics.PrometheusEndpoint" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.wrappers.PreRoutingWrapper" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.models.TeamAccess" : {
"type" : "object",
"description" : "Access rights for teams",
"properties" : {
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
}
}
},
"otoroshi.models.OtoroshiAdminType" : {
"type" : "string",
"enum" : [ "SIMPLE", "WEBAUTHN" ],
"description" : "Admin kind"
},
"otoroshi.next.plugins.OAuth2Caller" : {
"type" : "object",
"description" : "???",
"properties" : {
"cache_token_seconds" : {
"type" : "number",
"description" : "???"
},
"client_id" : {
"type" : "string",
"description" : "???"
},
"client_secret" : {
"type" : "string",
"description" : "???"
},
"scope" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"password" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"header_name" : {
"type" : "string",
"description" : "???"
},
"method" : {
"type" : "string",
"description" : "???"
},
"user" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"kind" : {
"description" : "The kind of oauth2 flow",
"type" : "string",
"enum" : [ "client_credentials", "password" ]
},
"header_value_format" : {
"type" : "string",
"description" : "???"
},
"json_payload" : {
"type" : "boolean",
"description" : "???"
},
"audience" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"url" : {
"type" : "string",
"description" : "???"
},
"tls_config" : {
"description" : "???",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
}
}
},
"otoroshi.plugins.log4j.Log4jExpressionParser" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.ssl.Cert" : {
"properties" : {
"certType" : {
"type" : "string",
"description" : "the kind of certificate",
"enum" : [ "client", "ca", "letsEncrypt", "keypair", "selfSigned", "certificate" ]
},
"name" : {
"type" : "string",
"description" : "Entity name"
},
"revoked" : {
"type" : "boolean",
"description" : "Certificate is revoked"
},
"subject" : {
"type" : "string",
"description" : "Certificate subject"
},
"description" : {
"type" : "string",
"description" : "Entity description"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Entity tags"
},
"domain" : {
"type" : "string",
"description" : "Certificate domain"
},
"ca" : {
"type" : "boolean",
"description" : "Is cert a CA ?"
},
"keypair" : {
"type" : "boolean",
"description" : "Is cert used for its keypair only ?"
},
"letsEncrypt" : {
"type" : "boolean",
"description" : "Let's encrypt (ACME) generated"
},
"autoRenew" : {
"type" : "boolean",
"description" : "Auto renew cert"
},
"caRef" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"to" : {
"type" : "number",
"description" : "Stop date"
},
"exposed" : {
"type" : "boolean",
"description" : "Is the cert exposed (public key exposed in jwks.json)"
},
"id" : {
"type" : "string",
"description" : "Entity id"
},
"_loc" : {
"description" : "Entity location",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"sans" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Certificate SANs"
},
"client" : {
"type" : "boolean",
"description" : "Is cert a client cert ?"
},
"from" : {
"type" : "number",
"description" : "Start date"
},
"valid" : {
"type" : "boolean",
"description" : "Is cert valid"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Entity metadata"
},
"privateKey" : {
"type" : "string",
"description" : "Certificate private key (PEM encoded)"
},
"selfSigned" : {
"type" : "boolean",
"description" : "Is cert self signed"
},
"chain" : {
"type" : "string",
"description" : "Certicates chain (PEM encoded)"
},
"password" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object",
"description" : "The otoroshi model for X509 certificates"
},
"otoroshi.models.AlgoSettings" : {
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "size", "publicKey", "privateKey" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "secret", "base64" ]
}, {
"required" : [ "type", "url", "tlsConfig", "kty", "proxy", "headers", "ttl", "timeout" ]
}, {
"required" : [ "type", "onlyExposedCerts" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "publicKey", "privateKey" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
}
},
"otoroshi.tcp.TcpRule" : {
"type" : "object",
"description" : "Associate targets for a domain (SNI)",
"properties" : {
"domain" : {
"type" : "string",
"description" : "match on SNI domain"
},
"targets" : {
"type" : "array",
"items" : {
"properties" : {
"host" : {
"type" : "string",
"description" : "Target host"
},
"ip" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"port" : {
"type" : "integer",
"format" : "int32",
"description" : "Target port"
},
"tls" : {
"type" : "boolean",
"description" : "Use tls"
}
},
"type" : "object"
},
"description" : "TCP targets"
}
}
},
"otoroshi.next.plugins.NgUserAgentInfoEndpoint" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.plugins.geoloc.MaxMindGeolocationHelper" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.plugins.jobs.kubernetes.IngressSupport" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.utils.TypedMap" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.NgServiceQuotas" : {
"type" : "object",
"description" : "???",
"properties" : {
"throttling_quota" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"daily_quota" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"monthly_quota" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
}
}
},
"otoroshi.next.plugins.Http3SwitchConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"ma" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"domain" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"protocols" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgLog4ShellFilter" : {
"type" : "object",
"description" : "???",
"properties" : {
"status" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"body" : {
"type" : "string",
"description" : "???"
},
"parse_body" : {
"type" : "boolean",
"description" : "???"
}
}
},
"otoroshi.models.CleverCloudSettings" : {
"type" : "object",
"description" : "Settings for connection to the clever-cloud api",
"properties" : {
"consumerSecret" : {
"type" : "string",
"description" : "Clever-Cloud oauth consumer secret"
},
"consumerKey" : {
"type" : "string",
"description" : "Clever-Cloud oauth consumer key"
},
"secret" : {
"type" : "string",
"description" : "Clever-Cloud oauth secret"
},
"token" : {
"type" : "string",
"description" : "Clever-Cloud oauth token"
},
"orgaId" : {
"type" : "string",
"description" : "Clever-Cloud organization id"
}
}
},
"otoroshi.plugins.hmac.HMACCallerPlugin" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.WasmRequestTransformer" : {
"type" : "object",
"description" : "???",
"properties" : {
"allowedHosts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"memoryPages" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"allowedPaths" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"instances" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"config" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"authorizations" : {
"description" : "???",
"properties" : {
"proxyStateAccess" : {
"type" : "boolean",
"description" : "???"
},
"httpAccess" : {
"type" : "boolean",
"description" : "???"
},
"globalMapAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"pluginDataStoreAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"pluginMapAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"proxyHttpCallTimeout" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"configurationAccess" : {
"type" : "boolean",
"description" : "???"
},
"globalDataStoreAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
}
},
"type" : "object"
},
"opa" : {
"type" : "boolean",
"description" : "???"
},
"wasi" : {
"type" : "boolean",
"description" : "???"
},
"functionName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.next.plugins.NgBiscuitValidator" : {
"type" : "object",
"description" : "???",
"properties" : {
"legacy" : {
"description" : "???",
"properties" : {
"facts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"publicKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"resources" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"enforce" : {
"type" : "boolean",
"description" : "???"
},
"extractorName" : {
"type" : "string",
"description" : "???"
},
"checks" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"extractor" : {
"type" : "string",
"description" : "???"
},
"revocation_ids" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"rules" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
}
}
},
"otoroshi.next.plugins.AllowHttpMethods" : {
"type" : "object",
"description" : "???",
"properties" : {
"allowed" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"forbidden" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.plugins.apikeys.ClientCredentialFlow" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.JsonTransform" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.plugins.jobs.kubernetes.OtoroshiResourcesContext" : {
"type" : "object",
"description" : "???",
"properties" : {
"routes" : {
"type" : "array",
"items" : {
"properties" : {
"debug_flow" : {
"type" : "boolean",
"description" : "Enable report debugging"
},
"enabled" : {
"type" : "boolean",
"description" : "Is the route enabled"
},
"name" : {
"type" : "string",
"description" : "The name of the route"
},
"id" : {
"type" : "string",
"description" : "The ud of the route"
},
"export_reporting" : {
"type" : "boolean",
"description" : "Export the execution reporting through standard data exporter"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "The metadata of the route"
},
"frontend" : {
"description" : "The frontend of the route",
"properties" : {
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "the headers that will be matched"
},
"query" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "the query params that will be matched"
},
"domains" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "The domain and path that will be matched"
},
"methods" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "the http methods that will be matched"
},
"exact" : {
"type" : "boolean",
"description" : "Match on exact path ?"
},
"strip_path" : {
"type" : "boolean",
"description" : "Is path stripped from backend request"
}
},
"type" : "object"
},
"_loc" : {
"description" : "The location of the route",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "The tags of the route"
},
"capture" : {
"type" : "boolean",
"description" : "Capture http traffic"
},
"groups" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "The groups of the route"
},
"backend_ref" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"description" : {
"type" : "string",
"description" : "The description of the route"
},
"backend" : {
"description" : "The backend of the route",
"properties" : {
"root" : {
"type" : "string",
"description" : "The root path of the backend or the full rewrite path"
},
"health_check" : {
"description" : "???",
"type" : "object",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"url" : {
"type" : "string",
"description" : "???"
},
"timeout" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
}
},
"client" : {
"description" : "Client config. of the backend",
"properties" : {
"idle_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout on idle connection"
},
"sample_interval" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify the sliding window time for the circuit breaker in milliseconds, after this time, error count will be reseted"
},
"cache_connection_settings" : {
"description" : "Cached connection settings",
"properties" : {
"queue_size" : {
"type" : "integer",
"format" : "int32",
"description" : "How much request can be queue before dropping it"
},
"enabled" : {
"type" : "boolean",
"description" : "Is cached connection enabled"
}
},
"type" : "object"
},
"call_and_stream_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (hard timeout, connection will be closed after that duration)"
},
"custom_timeouts" : {
"type" : "array",
"items" : {
"properties" : {
"connection_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout at connection"
},
"call_and_stream_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (hard timeout, connection will be closed after that duration)"
},
"path" : {
"type" : "string",
"description" : "path on which this configuration works"
},
"call_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (soft timeout as it's enforced by the circuit breaker)"
},
"idle_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout on idle connection"
},
"global_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long the global call (with retries) should last at most in milliseconds"
}
},
"type" : "object"
},
"description" : "Custom timeouts per path"
},
"connection_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout at connection"
},
"call_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (soft timeout as it's enforced by the circuit breaker)"
},
"global_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long the global call (with retries) should last at most in milliseconds"
},
"retry_initial_delay" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify the delay between two retries. Each retry, the delay is multiplied by the backoff factor"
},
"backoff_factor" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify the factor to multiply the delay for each retry"
},
"proxy" : {
"description" : "Web proxy settings for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"retries" : {
"type" : "integer",
"format" : "int32",
"description" : "Specify how many times the client will try to fetch the result of the request after an error before giving up."
},
"max_errors" : {
"type" : "integer",
"format" : "int32",
"description" : "Specify how many errors can pass before opening the circuit breaker"
}
},
"type" : "object"
},
"load_balancing" : {
"description" : "Loadbalancing config og the backend",
"properties" : {
"type" : {
"type" : "string",
"enum" : [ "BestResponseTime", "IpAddressHash", "Random", "RoundRobin", "Sticky", "WeightedBestResponseTime" ]
},
"ratio" : {
"type" : "number",
"format" : "double"
}
},
"type" : "object"
},
"rewrite" : {
"type" : "boolean",
"description" : "Does the backend performs a full url rewrite ?"
},
"targets" : {
"type" : "array",
"items" : {
"properties" : {
"ip_address" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"protocol" : {
"type" : "string",
"enum" : [ "HTTP/1.0", "HTTP/1.1", "HTTP/2.0", "HTTP/3.0" ],
"description" : "Protocol for the target"
},
"predicate" : {
"description" : "Predicate to choose this target",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"dc" : {
"type" : "string",
"description" : "???"
},
"positions" : {
"type" : "array",
"items" : {
"properties" : {
"latitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"longitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"radius" : {
"type" : "number",
"format" : "double",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"provider" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataCenter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"rack" : {
"type" : "string",
"description" : "???"
},
"region" : {
"type" : "string",
"description" : "???"
},
"zone" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"tls_config" : {
"description" : "TLS settings to contact this target",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "Enabled"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
},
"loose" : {
"type" : "boolean",
"description" : "Loose verification"
},
"trust_all" : {
"type" : "boolean",
"description" : "Trust any certificate"
},
"trusted_certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
}
},
"type" : "object"
},
"tls" : {
"type" : "boolean",
"description" : "Does the target uses TLS"
},
"port" : {
"type" : "integer",
"format" : "int32",
"description" : "port of the target"
},
"id" : {
"type" : "string",
"description" : "id of the target"
},
"weight" : {
"type" : "integer",
"format" : "int32",
"description" : "The weight of the target when choosing"
},
"hostname" : {
"type" : "string",
"description" : "hostname of the target"
}
},
"type" : "object"
},
"description" : "The targets of the backend"
}
},
"type" : "object"
}
},
"type" : "object"
},
"description" : "???"
},
"apiKeys" : {
"type" : "array",
"items" : {
"properties" : {
"dailyQuota" : {
"type" : "integer",
"format" : "int64",
"description" : "Authorized number of calls per day"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Bunch of metadata for the key"
},
"throttlingQuota" : {
"type" : "integer",
"format" : "int64",
"description" : "Authorized number of calls per second, measured on 10 seconds"
},
"constrainedServicesOnly" : {
"type" : "boolean",
"description" : "This apikey can only be used on services that constrained their apikey routing"
},
"allowClientIdOnly" : {
"type" : "boolean",
"description" : "This apikey can be used juste with the client_id value"
},
"_loc" : {
"description" : "The location of the apikey",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"restrictions" : {
"description" : "Apikey restrictions settings",
"properties" : {
"forbidden" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"allowed" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"notFound" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"allowLast" : {
"type" : "boolean",
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Apikey tags"
},
"enabled" : {
"type" : "boolean",
"description" : "Whether or not the key is enabled. If disabled, resources won't be available to calls using this key"
},
"readOnly" : {
"type" : "boolean",
"description" : "The apikey only allow access for GET, HEAD and OPTIONS verbs"
},
"clientSecret" : {
"type" : "string",
"description" : "The secret of the Api Key. Usually 64 random alpha numerical characters, but can be anything"
},
"validUntil" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"clientName" : {
"type" : "string",
"description" : "The name of the api key, for humans ;-)"
},
"monthlyQuota" : {
"type" : "integer",
"format" : "int64",
"description" : "Authorized number of calls per month"
},
"description" : {
"type" : "string",
"description" : "Description of this apikey"
},
"rotation" : {
"description" : "Apikey rotation settings",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "Rotation enabled"
},
"rotationEvery" : {
"type" : "integer",
"format" : "int64",
"description" : "Rotate every n hours"
},
"gracePeriod" : {
"type" : "integer",
"format" : "int64",
"description" : "period (in hours) during which both secrets works"
},
"nextSecret" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"authorizedEntities" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "The group/service ids (prefixed by group_ or service_ on which the key is authorized"
},
"clientId" : {
"type" : "string",
"description" : "The unique id of the Api Key. Usually 16 random alpha numerical characters, but can be anything"
}
},
"type" : "object"
},
"description" : "???"
},
"backends" : {
"type" : "array",
"items" : {
"properties" : {
"description" : {
"type" : "string",
"description" : "The description of the backend"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "The tags of the backend"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "The metadata of the backend"
},
"backend" : {
"description" : "The actual backend",
"properties" : {
"root" : {
"type" : "string",
"description" : "The root path of the backend or the full rewrite path"
},
"health_check" : {
"description" : "???",
"type" : "object",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"url" : {
"type" : "string",
"description" : "???"
},
"timeout" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
}
},
"client" : {
"description" : "Client config. of the backend",
"properties" : {
"idle_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout on idle connection"
},
"sample_interval" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify the sliding window time for the circuit breaker in milliseconds, after this time, error count will be reseted"
},
"cache_connection_settings" : {
"description" : "Cached connection settings",
"properties" : {
"queue_size" : {
"type" : "integer",
"format" : "int32",
"description" : "How much request can be queue before dropping it"
},
"enabled" : {
"type" : "boolean",
"description" : "Is cached connection enabled"
}
},
"type" : "object"
},
"call_and_stream_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (hard timeout, connection will be closed after that duration)"
},
"custom_timeouts" : {
"type" : "array",
"items" : {
"properties" : {
"connection_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout at connection"
},
"call_and_stream_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (hard timeout, connection will be closed after that duration)"
},
"path" : {
"type" : "string",
"description" : "path on which this configuration works"
},
"call_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (soft timeout as it's enforced by the circuit breaker)"
},
"idle_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout on idle connection"
},
"global_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long the global call (with retries) should last at most in milliseconds"
}
},
"type" : "object"
},
"description" : "Custom timeouts per path"
},
"connection_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout at connection"
},
"call_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (soft timeout as it's enforced by the circuit breaker)"
},
"global_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long the global call (with retries) should last at most in milliseconds"
},
"retry_initial_delay" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify the delay between two retries. Each retry, the delay is multiplied by the backoff factor"
},
"backoff_factor" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify the factor to multiply the delay for each retry"
},
"proxy" : {
"description" : "Web proxy settings for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"retries" : {
"type" : "integer",
"format" : "int32",
"description" : "Specify how many times the client will try to fetch the result of the request after an error before giving up."
},
"max_errors" : {
"type" : "integer",
"format" : "int32",
"description" : "Specify how many errors can pass before opening the circuit breaker"
}
},
"type" : "object"
},
"load_balancing" : {
"description" : "Loadbalancing config og the backend",
"properties" : {
"type" : {
"type" : "string",
"enum" : [ "BestResponseTime", "IpAddressHash", "Random", "RoundRobin", "Sticky", "WeightedBestResponseTime" ]
},
"ratio" : {
"type" : "number",
"format" : "double"
}
},
"type" : "object"
},
"rewrite" : {
"type" : "boolean",
"description" : "Does the backend performs a full url rewrite ?"
},
"targets" : {
"type" : "array",
"items" : {
"properties" : {
"ip_address" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"protocol" : {
"type" : "string",
"enum" : [ "HTTP/1.0", "HTTP/1.1", "HTTP/2.0", "HTTP/3.0" ],
"description" : "Protocol for the target"
},
"predicate" : {
"description" : "Predicate to choose this target",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"dc" : {
"type" : "string",
"description" : "???"
},
"positions" : {
"type" : "array",
"items" : {
"properties" : {
"latitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"longitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"radius" : {
"type" : "number",
"format" : "double",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"provider" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataCenter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"rack" : {
"type" : "string",
"description" : "???"
},
"region" : {
"type" : "string",
"description" : "???"
},
"zone" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"tls_config" : {
"description" : "TLS settings to contact this target",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "Enabled"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
},
"loose" : {
"type" : "boolean",
"description" : "Loose verification"
},
"trust_all" : {
"type" : "boolean",
"description" : "Trust any certificate"
},
"trusted_certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
}
},
"type" : "object"
},
"tls" : {
"type" : "boolean",
"description" : "Does the target uses TLS"
},
"port" : {
"type" : "integer",
"format" : "int32",
"description" : "port of the target"
},
"id" : {
"type" : "string",
"description" : "id of the target"
},
"weight" : {
"type" : "integer",
"format" : "int32",
"description" : "The weight of the target when choosing"
},
"hostname" : {
"type" : "string",
"description" : "hostname of the target"
}
},
"type" : "object"
},
"description" : "The targets of the backend"
}
},
"type" : "object"
},
"name" : {
"type" : "string",
"description" : "The name of the backend"
},
"_loc" : {
"description" : "The location of the backend",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"id" : {
"type" : "string",
"description" : "The id of the backend"
}
},
"type" : "object"
},
"description" : "???"
},
"scripts" : {
"type" : "array",
"items" : {
"properties" : {
"name" : {
"type" : "string",
"description" : "The name of the script"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Entity metadata"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Entity tags"
},
"_loc" : {
"description" : "Entity location",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"desc" : {
"type" : "string",
"description" : "The description of the script"
},
"code" : {
"type" : "string",
"description" : "The code of the script"
},
"id" : {
"type" : "string",
"description" : "The id of the script"
},
"type" : {
"description" : "Plugin kind",
"type" : "string",
"enum" : [ "app", "transformer", "validator", "preroute", "sink", "listener", "job", "exporter" ]
}
},
"type" : "object"
},
"description" : "???"
},
"jwtVerifiers" : {
"type" : "array",
"items" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of verifier",
"enum" : [ "global" ]
},
"desc" : {
"type" : "string",
"description" : "Verifier description"
},
"name" : {
"type" : "string",
"description" : "Verifier name"
},
"strict" : {
"type" : "boolean",
"description" : "Does it fail if JWT not found"
},
"source" : {
"description" : "Where to find the jwt token",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "name" ]
}, {
"required" : [ "type", "name", "remove" ]
}, {
"required" : [ "type", "name" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of location",
"enum" : [ "InQueryParam", "InHeader", "InCookie" ]
},
"name" : {
"type" : "string",
"description" : "Query param name"
},
"remove" : {
"type" : "string",
"description" : "Remove from value"
}
}
},
"algoSettings" : {
"description" : "Algo settings of the verifier",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "size", "publicKey", "privateKey" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "secret", "base64" ]
}, {
"required" : [ "type", "url", "tlsConfig", "kty", "proxy", "headers", "ttl", "timeout" ]
}, {
"required" : [ "type", "onlyExposedCerts" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "publicKey", "privateKey" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
}
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Entity tags"
},
"id" : {
"type" : "string",
"description" : "Verifier id"
},
"_loc" : {
"description" : "Entity location",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"strategy" : {
"description" : "The strategy of the verifier",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "strict", "token", "verificationSettings" ]
}, {
"required" : [ "type", "verificationSettings" ]
}, {
"required" : [ "type", "verificationSettings", "algoSettings" ]
}, {
"required" : [ "type", "verificationSettings", "transformSettings", "algoSettings" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of strategy",
"enum" : [ "PassThrough", "Sign", "Transform", "DefaultToken" ]
},
"strict" : {
"type" : "boolean",
"description" : "If the token already exists in the request, then fail"
},
"token" : {
"type" : "object",
"description" : "The default token"
},
"verificationSettings" : {
"description" : "Verification settings",
"properties" : {
"fields" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Fields validation"
},
"arrayFields" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Fields array validation"
}
},
"type" : "object"
},
"algoSettings" : {
"description" : "Algorithm settings for re-signing token",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "size", "publicKey", "privateKey" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "secret", "base64" ]
}, {
"required" : [ "type", "url", "tlsConfig", "kty", "proxy", "headers", "ttl", "timeout" ]
}, {
"required" : [ "type", "onlyExposedCerts" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "publicKey", "privateKey" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
}
},
"transformSettings" : {
"description" : "Transformation settings",
"properties" : {
"location" : {
"description" : "Location of the token",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of location",
"enum" : [ "InQueryParam", "InHeader", "InCookie" ]
},
"name" : {
"type" : "string",
"description" : "Query param name"
},
"remove" : {
"type" : "string",
"description" : "Remove from value"
}
},
"type" : "object"
},
"mappingSettings" : {
"description" : "Token mapping settings",
"properties" : {
"map" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Change values"
},
"values" : {
"type" : "object",
"description" : "Add values"
},
"remove" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Remove some token claims"
}
},
"type" : "object"
}
},
"type" : "object"
}
}
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Entity metadata"
}
},
"type" : "object"
},
"description" : "???"
},
"tenants" : {
"type" : "array",
"items" : {
"properties" : {
"description" : {
"type" : "string",
"description" : "Entity description"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Entity metadata"
},
"name" : {
"type" : "string",
"description" : "Entity name"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Entity tags"
},
"id" : {
"description" : "Entity id",
"type" : "string"
}
},
"type" : "object"
},
"description" : "???"
},
"dataExporters" : {
"type" : "array",
"items" : {
"properties" : {
"desc" : {
"type" : "string",
"description" : "???"
},
"_loc" : {
"description" : "???",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"bufferSize" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"jsonWorkers" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"groupDuration" : {
"type" : "number",
"description" : "???"
},
"groupSize" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"type" : {
"description" : "Type of data exporter",
"type" : "string",
"enum" : [ "kafka", "pulsar", "elastic", "webhook", "file", "mailer", "custom", "none", "console", "metrics" ]
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"sendWorkers" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"id" : {
"type" : "string",
"description" : "???"
},
"name" : {
"type" : "string",
"description" : "???"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"config" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of exporter",
"enum" : [ "elastic", "webhook", "kafka", "pulsar", "file", "mailer", "custom", "console", "metrics" ]
},
"sendEvents" : {
"type" : "boolean",
"description" : "Send events to it, or just connect"
},
"truststore" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"hostValidation" : {
"type" : "boolean",
"description" : "Enabled TLS hostname validation"
},
"servers" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "URLs of the kafka servers"
},
"mtlsConfig" : {
"description" : "TLS config when calling webhook",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"securityProtocol" : {
"type" : "string",
"description" : "Used security protocol"
},
"keystore" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"topic" : {
"type" : "string",
"description" : "???"
},
"keyPass" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"saslConfig" : {
"description" : "SASL configuration",
"type" : "object",
"properties" : {
"username" : {
"type" : "string",
"description" : "SASL username"
},
"password" : {
"type" : "string",
"description" : "SASL password"
},
"mechanism" : {
"type" : "string",
"description" : "SASL login mechanism"
}
}
},
"tlsTrustCertsFilePath" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"tenant" : {
"type" : "string",
"description" : "???"
},
"uri" : {
"type" : "string",
"description" : "???"
},
"namespace" : {
"type" : "string",
"description" : "???"
},
"sendWorkers" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"applyTemplate" : {
"type" : "boolean",
"description" : "Enable template creation/update"
},
"uris" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"version" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"maxBulkSize" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Sender headers"
},
"indexSettings" : {
"description" : "Indexation settings",
"properties" : {
"clientSide" : {
"type" : "boolean",
"description" : "Enable index splitting on client side"
},
"numberOfShards" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"numberOfReplicas" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"interval" : {
"description" : "Index splitting interval",
"properties" : { },
"type" : "object"
}
},
"type" : "object"
},
"user" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"index" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"password" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"ref" : {
"type" : "string",
"description" : "???"
},
"config" : {
"type" : "object",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
},
"maxFileSize" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"labels" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"url" : {
"type" : "string",
"description" : "Sender URL"
},
"to" : {
"type" : "array",
"items" : {
"properties" : {
"name" : {
"type" : "string",
"description" : "Destination name"
},
"email" : {
"type" : "string",
"description" : "Email address"
}
},
"type" : "object"
},
"description" : "Destination email address"
},
"eu" : {
"type" : "boolean",
"description" : "European tenant"
},
"apiKey" : {
"type" : "string",
"description" : "Sendgrid apikey"
},
"domain" : {
"type" : "string",
"description" : "Mailgun domain"
},
"apiKeyPublic" : {
"type" : "string",
"description" : "Public key"
},
"apiKeyPrivate" : {
"type" : "string",
"description" : "Private key"
}
},
"type" : "object"
},
"projection" : {
"type" : "object",
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"filtering" : {
"description" : "???",
"properties" : {
"include" : {
"type" : "array",
"items" : {
"type" : "object"
},
"description" : "???"
},
"exclude" : {
"type" : "array",
"items" : {
"type" : "object"
},
"description" : "???"
}
},
"type" : "object"
}
},
"type" : "object"
},
"description" : "???"
},
"teams" : {
"type" : "array",
"items" : {
"properties" : {
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Entity tags"
},
"name" : {
"type" : "string",
"description" : "Entity name"
},
"description" : {
"type" : "string",
"description" : "Entity description"
},
"tenant" : {
"description" : "Entity organization",
"type" : "string"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Entity metadata"
},
"id" : {
"description" : "Entity id",
"type" : "string"
}
},
"type" : "object"
},
"description" : "???"
},
"routeCompositions" : {
"type" : "array",
"items" : {
"properties" : {
"capture" : {
"type" : "boolean",
"description" : "???"
},
"id" : {
"type" : "string",
"description" : "???"
},
"debug_flow" : {
"type" : "boolean",
"description" : "???"
},
"routes" : {
"type" : "array",
"items" : {
"properties" : {
"backend_ref" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"frontend" : {
"description" : "The frontend of the route",
"properties" : {
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "the headers that will be matched"
},
"query" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "the query params that will be matched"
},
"domains" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "The domain and path that will be matched"
},
"methods" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "the http methods that will be matched"
},
"exact" : {
"type" : "boolean",
"description" : "Match on exact path ?"
},
"strip_path" : {
"type" : "boolean",
"description" : "Is path stripped from backend request"
}
},
"type" : "object"
},
"override_plugins" : {
"type" : "boolean",
"description" : "Override global plugin list from route composition"
},
"backend" : {
"description" : "The backend of the route",
"properties" : {
"root" : {
"type" : "string",
"description" : "The root path of the backend or the full rewrite path"
},
"targets" : {
"type" : "array",
"items" : {
"properties" : {
"ip_address" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"protocol" : {
"type" : "string",
"enum" : [ "HTTP/1.0", "HTTP/1.1", "HTTP/2.0", "HTTP/3.0" ],
"description" : "Protocol for the target"
},
"predicate" : {
"description" : "Predicate to choose this target",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"dc" : {
"type" : "string",
"description" : "???"
},
"positions" : {
"type" : "array",
"items" : {
"properties" : {
"latitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"longitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"radius" : {
"type" : "number",
"format" : "double",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"provider" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataCenter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"rack" : {
"type" : "string",
"description" : "???"
},
"region" : {
"type" : "string",
"description" : "???"
},
"zone" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"tls_config" : {
"description" : "TLS settings to contact this target",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "Enabled"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
},
"loose" : {
"type" : "boolean",
"description" : "Loose verification"
},
"trust_all" : {
"type" : "boolean",
"description" : "Trust any certificate"
},
"trusted_certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
}
},
"type" : "object"
},
"tls" : {
"type" : "boolean",
"description" : "Does the target uses TLS"
},
"port" : {
"type" : "integer",
"format" : "int32",
"description" : "port of the target"
},
"id" : {
"type" : "string",
"description" : "id of the target"
},
"weight" : {
"type" : "integer",
"format" : "int32",
"description" : "The weight of the target when choosing"
},
"hostname" : {
"type" : "string",
"description" : "hostname of the target"
}
},
"type" : "object"
},
"description" : "The targets of the backend"
},
"load_balancing" : {
"description" : "Loadbalancing config og the backend",
"properties" : {
"type" : {
"type" : "string",
"enum" : [ "BestResponseTime", "IpAddressHash", "Random", "RoundRobin", "Sticky", "WeightedBestResponseTime" ]
},
"ratio" : {
"type" : "number",
"format" : "double"
}
},
"type" : "object"
},
"rewrite" : {
"type" : "boolean",
"description" : "Does the backend performs a full url rewrite ?"
}
},
"type" : "object"
}
},
"type" : "object"
},
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"description" : {
"type" : "string",
"description" : "???"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"export_reporting" : {
"type" : "boolean",
"description" : "???"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"name" : {
"type" : "string",
"description" : "???"
},
"_loc" : {
"description" : "???",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"client" : {
"description" : "???",
"properties" : {
"idle_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout on idle connection"
},
"sample_interval" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify the sliding window time for the circuit breaker in milliseconds, after this time, error count will be reseted"
},
"cache_connection_settings" : {
"description" : "Cached connection settings",
"properties" : {
"queue_size" : {
"type" : "integer",
"format" : "int32",
"description" : "How much request can be queue before dropping it"
},
"enabled" : {
"type" : "boolean",
"description" : "Is cached connection enabled"
}
},
"type" : "object"
},
"call_and_stream_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (hard timeout, connection will be closed after that duration)"
},
"custom_timeouts" : {
"type" : "array",
"items" : {
"properties" : {
"connection_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout at connection"
},
"call_and_stream_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (hard timeout, connection will be closed after that duration)"
},
"path" : {
"type" : "string",
"description" : "path on which this configuration works"
},
"call_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (soft timeout as it's enforced by the circuit breaker)"
},
"idle_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout on idle connection"
},
"global_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long the global call (with retries) should last at most in milliseconds"
}
},
"type" : "object"
},
"description" : "Custom timeouts per path"
},
"connection_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout at connection"
},
"call_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (soft timeout as it's enforced by the circuit breaker)"
},
"global_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long the global call (with retries) should last at most in milliseconds"
},
"retry_initial_delay" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify the delay between two retries. Each retry, the delay is multiplied by the backoff factor"
},
"backoff_factor" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify the factor to multiply the delay for each retry"
},
"proxy" : {
"description" : "Web proxy settings for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"retries" : {
"type" : "integer",
"format" : "int32",
"description" : "Specify how many times the client will try to fetch the result of the request after an error before giving up."
},
"max_errors" : {
"type" : "integer",
"format" : "int32",
"description" : "Specify how many errors can pass before opening the circuit breaker"
}
},
"type" : "object"
},
"groups" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"serviceDescriptors" : {
"type" : "array",
"items" : {
"properties" : {
"buildMode" : {
"type" : "boolean",
"description" : "???"
},
"hosts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"privateApp" : {
"type" : "boolean",
"description" : "???"
},
"localScheme" : {
"type" : "string",
"description" : "???"
},
"authConfigRef" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"issueCertCA" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"root" : {
"type" : "string",
"description" : "???"
},
"name" : {
"type" : "string",
"description" : "???"
},
"additionalHeaders" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"domain" : {
"type" : "string",
"description" : "???"
},
"clientConfig" : {
"description" : "???",
"properties" : {
"connectionTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"useCircuitBreaker" : {
"type" : "boolean",
"description" : "???"
},
"retryInitialDelay" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"cacheConnectionSettings" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"queueSize" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
},
"type" : "object"
},
"proxy" : {
"description" : "???",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"callTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"callAndStreamTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"globalTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"maxErrors" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"retries" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"backoffFactor" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"customTimeouts" : {
"type" : "array",
"items" : {
"properties" : {
"path" : {
"type" : "string",
"description" : "???"
},
"callAndStreamTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"callTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"idleTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"globalTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"connectionTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"idleTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"sampleInterval" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
}
},
"type" : "object"
},
"matchingRoot" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"forceHttps" : {
"type" : "boolean",
"description" : "???"
},
"localHost" : {
"type" : "string",
"description" : "???"
},
"sendOtoroshiHeadersBack" : {
"type" : "boolean",
"description" : "???"
},
"healthCheck" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"url" : {
"type" : "string",
"description" : "???"
},
"timeout" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
},
"type" : "object"
},
"strictlyPrivate" : {
"type" : "boolean",
"description" : "???"
},
"detectApiKeySooner" : {
"type" : "boolean",
"description" : "???"
},
"allowHttp10" : {
"type" : "boolean",
"description" : "???"
},
"subdomain" : {
"type" : "string",
"description" : "???"
},
"paths" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"stripPath" : {
"type" : "boolean",
"description" : "???"
},
"secComAlgoChallengeOtoToBack" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "size", "publicKey", "privateKey" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "secret", "base64" ]
}, {
"required" : [ "type", "url", "tlsConfig", "kty", "proxy", "headers", "ttl", "timeout" ]
}, {
"required" : [ "type", "onlyExposedCerts" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "publicKey", "privateKey" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
}
},
"apiKeyConstraints" : {
"description" : "???",
"properties" : {
"customHeadersAuth" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"clientIdHeaderName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"clientSecretHeaderName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"routing" : {
"description" : "???",
"properties" : {
"oneTagIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"noneMetaKeysIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"oneMetaIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"oneMetaKeyIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allMetaKeysIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"noneTagIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allTagsIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allMetaIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"noneMetaIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"clientIdAuth" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"headerName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"queryName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"jwtAuth" : {
"description" : "???",
"properties" : {
"keyPairSigned" : {
"type" : "boolean",
"description" : "???"
},
"cookieName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"queryName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"headerName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"secretSigned" : {
"type" : "boolean",
"description" : "???"
},
"maxJwtLifespanSecs" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"includeRequestAttributes" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"basicAuth" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"headerName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"queryName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
}
},
"type" : "object"
},
"env" : {
"type" : "string",
"description" : "???"
},
"xForwardedHeaders" : {
"type" : "boolean",
"description" : "???"
},
"transformerRefs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"gzip" : {
"description" : "???",
"properties" : {
"compressionLevel" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"blackList" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"chunkedThreshold" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"bufferSize" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"whiteList" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"sendInfoToken" : {
"type" : "boolean",
"description" : "???"
},
"tcpUdpTunneling" : {
"type" : "boolean",
"description" : "???"
},
"removeHeadersOut" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"useAkkaHttpClient" : {
"type" : "boolean",
"description" : "???"
},
"maintenanceMode" : {
"type" : "boolean",
"description" : "???"
},
"id" : {
"type" : "string",
"description" : "???"
},
"removeHeadersIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"logAnalyticsOnServer" : {
"type" : "boolean",
"description" : "???"
},
"secComAlgoInfoToken" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "size", "publicKey", "privateKey" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "secret", "base64" ]
}, {
"required" : [ "type", "url", "tlsConfig", "kty", "proxy", "headers", "ttl", "timeout" ]
}, {
"required" : [ "type", "onlyExposedCerts" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "publicKey", "privateKey" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
}
},
"userFacing" : {
"type" : "boolean",
"description" : "???"
},
"transformerConfig" : {
"type" : "object",
"description" : "???"
},
"clientValidatorRef" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"securityExcludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"ipFiltering" : {
"description" : "???",
"properties" : {
"whitelist" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"blacklist" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"targets" : {
"type" : "array",
"items" : {
"properties" : {
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"host" : {
"type" : "string",
"description" : "???"
},
"weight" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"protocol" : {
"type" : "string",
"enum" : [ "HTTP/1.0", "HTTP/1.1", "HTTP/2.0", "HTTP/3.0" ],
"description" : "???"
},
"predicate" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"dc" : {
"type" : "string",
"description" : "???"
},
"positions" : {
"type" : "array",
"items" : {
"properties" : {
"latitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"longitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"radius" : {
"type" : "number",
"format" : "double",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"provider" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataCenter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"rack" : {
"type" : "string",
"description" : "???"
},
"region" : {
"type" : "string",
"description" : "???"
},
"zone" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"ipAddress" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"mtlsConfig" : {
"description" : "???",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"scheme" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"redirection" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"code" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"to" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"restrictions" : {
"description" : "???",
"properties" : {
"forbidden" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"allowed" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"notFound" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"allowLast" : {
"type" : "boolean",
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"overrideHost" : {
"type" : "boolean",
"description" : "???"
},
"accessValidator" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"refs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"config" : {
"type" : "object",
"description" : "???"
}
},
"type" : "object"
},
"sendStateChallenge" : {
"type" : "boolean",
"description" : "???"
},
"chaosConfig" : {
"description" : "???",
"properties" : {
"badResponsesFaultConfig" : {
"description" : "Settings for bad responses",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"responses" : {
"type" : "array",
"items" : {
"properties" : {
"status" : {
"type" : "integer",
"format" : "int32",
"description" : "The HTTP status for the response"
},
"body" : {
"type" : "string",
"description" : "The body of the HTTP response"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "The HTTP headers of the response"
}
},
"type" : "object"
},
"description" : "The possibles responses"
}
}
},
"largeRequestFaultConfig" : {
"description" : "Settings for large requests",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"additionalRequestSize" : {
"type" : "integer",
"format" : "int32",
"description" : "The size added to the request body in bytes. Added payload will be spaces only."
}
}
},
"largeResponseFaultConfig" : {
"description" : "Settings for large responses",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"additionalResponseSize" : {
"type" : "integer",
"format" : "int32",
"description" : "Add n 0 bytes"
}
}
},
"latencyInjectionFaultConfig" : {
"description" : "Settings for latency injection",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"from" : {
"type" : "number",
"description" : "The start range of latency added to the request"
},
"to" : {
"type" : "number",
"description" : "The end range of latency added to the request"
}
}
},
"enabled" : {
"type" : "boolean",
"description" : "Whether or not this config is enabled"
}
},
"type" : "object"
},
"secComInfoTokenVersion" : {
"description" : "Version of the info token",
"type" : "string",
"enum" : [ "Legacy", "Latest" ]
},
"additionalHeadersOut" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"secComHeaders" : {
"description" : "???",
"properties" : {
"claimRequestName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"stateRequestName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"stateResponseName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"matchingHeaders" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"secComAlgoChallengeBackToOto" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "size", "publicKey", "privateKey" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "secret", "base64" ]
}, {
"required" : [ "type", "url", "tlsConfig", "kty", "proxy", "headers", "ttl", "timeout" ]
}, {
"required" : [ "type", "onlyExposedCerts" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "publicKey", "privateKey" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
}
},
"secComUseSameAlgo" : {
"type" : "boolean",
"description" : "???"
},
"useNewWSClient" : {
"type" : "boolean",
"description" : "???"
},
"secComExcludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"redirectToLocal" : {
"type" : "boolean",
"description" : "???"
},
"enforceSecureCommunication" : {
"type" : "boolean",
"description" : "???"
},
"missingOnlyHeadersOut" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"secComSettings" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "size", "publicKey", "privateKey" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "secret", "base64" ]
}, {
"required" : [ "type", "url", "tlsConfig", "kty", "proxy", "headers", "ttl", "timeout" ]
}, {
"required" : [ "type", "onlyExposedCerts" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "publicKey", "privateKey" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
}
},
"handleLegacyDomain" : {
"type" : "boolean",
"description" : "???"
},
"canary" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"traffic" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"targets" : {
"type" : "array",
"items" : {
"properties" : {
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"host" : {
"type" : "string",
"description" : "???"
},
"weight" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"protocol" : {
"type" : "string",
"enum" : [ "HTTP/1.0", "HTTP/1.1", "HTTP/2.0", "HTTP/3.0" ],
"description" : "???"
},
"predicate" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"dc" : {
"type" : "string",
"description" : "???"
},
"positions" : {
"type" : "array",
"items" : {
"properties" : {
"latitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"longitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"radius" : {
"type" : "number",
"format" : "double",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"provider" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataCenter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"rack" : {
"type" : "string",
"description" : "???"
},
"region" : {
"type" : "string",
"description" : "???"
},
"zone" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"ipAddress" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"mtlsConfig" : {
"description" : "???",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"scheme" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"root" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"_loc" : {
"description" : "???",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"plugins" : {
"description" : "???",
"properties" : {
"config" : {
"type" : "object",
"description" : "Plugins configuration"
},
"enabled" : {
"type" : "boolean",
"description" : "Plugins enabled"
},
"excluded" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Excluded paths"
},
"refs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Enabled plugins"
}
},
"type" : "object"
},
"secComTtl" : {
"type" : "number",
"description" : "???"
},
"description" : {
"type" : "string",
"description" : "???"
},
"secComVersion" : {
"description" : "Version of the challenge token",
"type" : "string",
"enum" : [ "V1", "v2" ]
},
"preRouting" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"refs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"config" : {
"type" : "object",
"description" : "???"
}
},
"type" : "object"
},
"groups" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"readOnly" : {
"type" : "boolean",
"description" : "???"
},
"privatePatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"targetsLoadBalancing" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"enum" : [ "BestResponseTime", "IpAddressHash", "Random", "RoundRobin", "Sticky", "WeightedBestResponseTime" ]
},
"ratio" : {
"type" : "number",
"format" : "double"
}
},
"type" : "object"
},
"cors" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"allowCredentials" : {
"type" : "boolean",
"description" : "???"
},
"maxAge" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"allowMethods" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allowHeaders" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"exposeHeaders" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allowOrigin" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"publicPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"api" : {
"description" : "???",
"properties" : {
"exposeApi" : {
"type" : "boolean",
"description" : "???"
},
"openApiDescriptorUrl" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"missingOnlyHeadersIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"issueCert" : {
"type" : "boolean",
"description" : "???"
},
"headersVerification" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"jwtVerifier" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "desc", "name", "strict", "source", "algoSettings", "tags", "id", "_loc", "strategy", "metadata" ]
}, {
"required" : [ "type", "strict", "source", "algoSettings", "enabled", "excludedPatterns", "strategy" ]
}, {
"required" : [ "type", "excludedPatterns", "enabled", "ids" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of verifier",
"enum" : [ "global", "local", "ref" ]
},
"desc" : {
"type" : "string",
"description" : "Verifier description"
},
"name" : {
"type" : "string",
"description" : "Verifier name"
},
"strict" : {
"type" : "boolean",
"description" : "???"
},
"source" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "name" ]
}, {
"required" : [ "type", "name", "remove" ]
}, {
"required" : [ "type", "name" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of location",
"enum" : [ "InQueryParam", "InHeader", "InCookie" ]
},
"name" : {
"type" : "string",
"description" : "Query param name"
},
"remove" : {
"type" : "string",
"description" : "Remove from value"
}
}
},
"algoSettings" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
},
"type" : "object"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Entity tags"
},
"id" : {
"type" : "string",
"description" : "Verifier id"
},
"_loc" : {
"description" : "Entity location",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"strategy" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "strict", "token", "verificationSettings" ]
}, {
"required" : [ "type", "verificationSettings" ]
}, {
"required" : [ "type", "verificationSettings", "algoSettings" ]
}, {
"required" : [ "type", "verificationSettings", "transformSettings", "algoSettings" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of strategy",
"enum" : [ "PassThrough", "Sign", "Transform", "DefaultToken" ]
},
"strict" : {
"type" : "boolean",
"description" : "If the token already exists in the request, then fail"
},
"token" : {
"type" : "object",
"description" : "The default token"
},
"verificationSettings" : {
"description" : "Verification settings",
"properties" : {
"fields" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Fields validation"
},
"arrayFields" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Fields array validation"
}
},
"type" : "object"
},
"algoSettings" : {
"description" : "Algorithm settings for re-signing token",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "size", "publicKey", "privateKey" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "secret", "base64" ]
}, {
"required" : [ "type", "url", "tlsConfig", "kty", "proxy", "headers", "ttl", "timeout" ]
}, {
"required" : [ "type", "onlyExposedCerts" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "publicKey", "privateKey" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
}
},
"transformSettings" : {
"description" : "Transformation settings",
"properties" : {
"location" : {
"description" : "Location of the token",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of location",
"enum" : [ "InQueryParam", "InHeader", "InCookie" ]
},
"name" : {
"type" : "string",
"description" : "Query param name"
},
"remove" : {
"type" : "string",
"description" : "Remove from value"
}
},
"type" : "object"
},
"mappingSettings" : {
"description" : "Token mapping settings",
"properties" : {
"map" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Change values"
},
"values" : {
"type" : "object",
"description" : "Add values"
},
"remove" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Remove some token claims"
}
},
"type" : "object"
}
},
"type" : "object"
}
}
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Entity metadata"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"ids" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"letsEncrypt" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"globalConfigs" : {
"type" : "array",
"items" : {
"properties" : {
"geolocationSettings" : {
"description" : "Settings for geolocation extraction",
"properties" : {
"type" : {
"type" : "string",
"enum" : [ "none" ]
},
"enabled" : {
"type" : "boolean",
"description" : "Geolocation using maxmind db enabled"
},
"apikey" : {
"type" : "string",
"description" : "IpStack apikey"
},
"timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "API call timeout"
},
"path" : {
"type" : "string",
"description" : "Maxmlind db file path"
}
},
"type" : "object"
},
"alertsEmails" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Email addresses that will receive all Otoroshi alert events"
},
"throttlingQuota" : {
"type" : "integer",
"format" : "int64",
"description" : "Authorized number of calls per second globally, measured on 10 seconds"
},
"anonymousReporting" : {
"type" : "boolean",
"description" : "???"
},
"maxWebhookSize" : {
"type" : "integer",
"format" : "int32",
"description" : "Max number of items in webhooks"
},
"env" : {
"type" : "object",
"description" : "???"
},
"maxConcurrentRequests" : {
"type" : "integer",
"format" : "int64",
"description" : "The number of authorized request processed at the same time"
},
"cleverSettings" : {
"description" : "Optional CleverCloud configuration",
"type" : "object",
"properties" : {
"consumerSecret" : {
"type" : "string",
"description" : "Clever-Cloud oauth consumer secret"
},
"consumerKey" : {
"type" : "string",
"description" : "Clever-Cloud oauth consumer key"
},
"secret" : {
"type" : "string",
"description" : "Clever-Cloud oauth secret"
},
"token" : {
"type" : "string",
"description" : "Clever-Cloud oauth token"
},
"orgaId" : {
"type" : "string",
"description" : "Clever-Cloud organization id"
}
}
},
"templates" : {
"description" : "The otoroshi default templates for entities",
"properties" : {
"team" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"script" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"apikey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"group" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"tcpService" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"verifier" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"service" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"target" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certificate" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataExporter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"route" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"backend" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"template" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"tenant" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"authConfig" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"descriptor" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"endlessIpAddresses" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "IP addresses for which any request to Otoroshi will respond with 128 Gb of zeros"
},
"plugins" : {
"description" : "global plugins settings",
"properties" : {
"config" : {
"type" : "object",
"description" : "Plugins configuration"
},
"enabled" : {
"type" : "boolean",
"description" : "Plugins enabled"
},
"excluded" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Excluded paths"
},
"refs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Enabled plugins"
}
},
"type" : "object"
},
"kafkaConfig" : {
"description" : "Kafka settings",
"type" : "object",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of exporter",
"enum" : [ "elastic", "webhook", "kafka", "pulsar", "file", "mailer", "custom", "console", "metrics" ]
},
"sendEvents" : {
"type" : "boolean",
"description" : "Send events to it, or just connect"
},
"truststore" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"hostValidation" : {
"type" : "boolean",
"description" : "Enabled TLS hostname validation"
},
"servers" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "URLs of the kafka servers"
},
"mtlsConfig" : {
"description" : "TLS config to access the cluster",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"securityProtocol" : {
"type" : "string",
"description" : "Used security protocol"
},
"keystore" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"topic" : {
"type" : "string",
"description" : "Optional kafka topic (otoroshi-events by default)"
},
"keyPass" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"saslConfig" : {
"description" : "SASL configuration",
"type" : "object",
"properties" : {
"username" : {
"type" : "string",
"description" : "SASL username"
},
"password" : {
"type" : "string",
"description" : "SASL password"
},
"mechanism" : {
"type" : "string",
"description" : "SASL login mechanism"
}
}
}
}
},
"maxLogsSize" : {
"type" : "integer",
"format" : "int32",
"description" : "Number of events kept locally"
},
"proxies" : {
"description" : "Web proxies settings",
"properties" : {
"elastic" : {
"description" : "Web proxy used to call elastic",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"eventsWebhooks" : {
"description" : "Web proxy used to call webhooks",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"jwk" : {
"description" : "Web proxy used to fetch jwks",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"auth" : {
"description" : "Web proxy used to call OAuth providers",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"clevercloud" : {
"description" : "Web proxy used to call clevercloud",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"alertEmails" : {
"description" : "Web proxy used to send alert emails",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"authority" : {
"description" : "Web proxy used to check authorities",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"services" : {
"description" : "Web proxy used to access services targets",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
}
},
"type" : "object"
},
"enableEmbeddedMetrics" : {
"type" : "boolean",
"description" : "Enable embedded metrics"
},
"elasticReadsConfig" : {
"description" : "Config. for elastic reads",
"type" : "object",
"properties" : {
"type" : {
"type" : "string",
"description" : "null type",
"enum" : [ "elastic", "webhook", "kafka", "pulsar", "file", "mailer", "custom", "console", "metrics" ],
"nullable" : true
},
"sendWorkers" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"applyTemplate" : {
"type" : "boolean",
"description" : "Enable template creation/update"
},
"uris" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"mtlsConfig" : {
"description" : "TLS settings for the http client",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"version" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"maxBulkSize" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Additionnal headers in the http request"
},
"indexSettings" : {
"description" : "Indexation settings",
"properties" : {
"clientSide" : {
"type" : "boolean",
"description" : "Enable index splitting on client side"
},
"numberOfShards" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"numberOfReplicas" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"interval" : {
"description" : "Index splitting interval",
"properties" : { },
"type" : "object"
}
},
"type" : "object"
},
"user" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"index" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"password" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"trustXForwarded" : {
"type" : "boolean",
"description" : "Use X-Forwarded-* headers for routing"
},
"quotasSettings" : {
"description" : "Settings to generate alert when an apikey almost exceeded or exceeded its quotas",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "Is quotas alert enabled"
},
"dailyQuotasThreshold" : {
"type" : "number",
"format" : "double",
"description" : "The daily quotas threshold before generating alert"
},
"monthlyQuotasThreshold" : {
"type" : "number",
"format" : "double",
"description" : "The monthly quotas threshold before generating alert"
}
},
"type" : "object"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Entity tags"
},
"limitConcurrentRequests" : {
"type" : "boolean",
"description" : "If enabled, Otoroshi will reject new request if too much at the same time"
},
"useAkkaHttpClient" : {
"type" : "boolean",
"description" : "Globally use akka http client for everything"
},
"elasticWritesConfigs" : {
"type" : "array",
"items" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "null type",
"enum" : [ "elastic", "webhook", "kafka", "pulsar", "file", "mailer", "custom", "console", "metrics" ],
"nullable" : true
},
"sendWorkers" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"applyTemplate" : {
"type" : "boolean",
"description" : "Enable template creation/update"
},
"uris" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"mtlsConfig" : {
"description" : "TLS settings for the http client",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"version" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"maxBulkSize" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Additionnal headers in the http request"
},
"indexSettings" : {
"description" : "Indexation settings",
"properties" : {
"clientSide" : {
"type" : "boolean",
"description" : "Enable index splitting on client side"
},
"numberOfShards" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"numberOfReplicas" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"interval" : {
"description" : "Index splitting interval",
"properties" : { },
"type" : "object"
}
},
"type" : "object"
},
"user" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"index" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"password" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"description" : "Configs. for Elastic writes"
},
"logAnalyticsOnServer" : {
"type" : "boolean",
"description" : "Log analytics event on the server"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Entity metadata"
},
"apiReadOnly" : {
"type" : "boolean",
"description" : "If enabled, Admin API won't be able to write/update/delete entities"
},
"backOfficeAuthRef" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"streamEntityOnly" : {
"type" : "boolean",
"description" : "HTTP will be streamed only. Doesn't work with old browsers"
},
"otoroshiId" : {
"type" : "string",
"description" : "Unique id for this otoroshi instance"
},
"mailerSettings" : {
"description" : "Optional mailer configuration",
"type" : "object",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of exporter",
"enum" : [ "elastic", "webhook", "kafka", "pulsar", "file", "mailer", "custom", "console", "metrics" ]
},
"url" : {
"type" : "string",
"description" : "Sender URL"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Sender headers"
},
"to" : {
"type" : "array",
"items" : {
"properties" : {
"name" : {
"type" : "string",
"description" : "Destination name"
},
"email" : {
"type" : "string",
"description" : "Email address"
}
},
"type" : "object"
},
"description" : "Destination email address"
},
"eu" : {
"type" : "boolean",
"description" : "European tenant"
},
"apiKey" : {
"type" : "string",
"description" : "Sendgrid apikey"
},
"domain" : {
"type" : "string",
"description" : "Mailgun domain"
},
"apiKeyPublic" : {
"type" : "string",
"description" : "Public key"
},
"apiKeyPrivate" : {
"type" : "string",
"description" : "Private key"
}
}
},
"lines" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Possibles lines for Otoroshi"
},
"extensions" : {
"type" : "object",
"additionalProperties" : {
"type" : "object"
},
"description" : "???"
},
"middleFingers" : {
"type" : "boolean",
"description" : "Use middle finger emoji as a response character for endless HTTP responses"
},
"analyticsWebhooks" : {
"type" : "array",
"items" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of exporter",
"enum" : [ "elastic", "webhook", "kafka", "pulsar", "file", "mailer", "custom", "console", "metrics" ]
},
"url" : {
"type" : "string",
"description" : "The URL where events are posted"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Headers to authorize the call or whatever"
},
"mtlsConfig" : {
"description" : "TLS config when calling webhook",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
}
},
"type" : "object"
},
"description" : "Webhook that will receive all internal Otoroshi events"
},
"autoCert" : {
"description" : "Auto certs settings",
"properties" : {
"allowed" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "allowed domains"
},
"enabled" : {
"type" : "boolean",
"description" : "Enable auto cert"
},
"replyNicely" : {
"type" : "boolean",
"description" : "Reply TLS error with an auto generated certificate for the domain"
},
"notAllowed" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "not allowed domains"
},
"caRef" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"maintenanceMode" : {
"type" : "boolean",
"description" : "Global maintenant mode"
},
"initWithNewEngine" : {
"type" : "boolean",
"description" : "Was this instance init with new engine as default"
},
"letsEncryptSettings" : {
"description" : "Let's encrypt (ACME) settings",
"properties" : {
"privateKey" : {
"type" : "string",
"description" : "Let's encrypt (ACME) private key"
},
"contacts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Let's encrypt (ACME) contacts"
},
"emails" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Let's encrypt (ACME) contact emails"
},
"enabled" : {
"type" : "boolean",
"description" : "Let's encrypt (ACME) enabled"
},
"publicKey" : {
"type" : "string",
"description" : "Let's encrypt (ACME) public key"
},
"server" : {
"type" : "string",
"description" : "Let's encrypt (ACME) server"
}
},
"type" : "object"
},
"snowMonkeyConfig" : {
"description" : "Snowmonky settings",
"properties" : {
"dryRun" : {
"type" : "boolean",
"description" : "Whether or not outages will actualy impact requests"
},
"outageDurationTo" : {
"type" : "number",
"description" : "End of outage duration range"
},
"chaosConfig" : {
"description" : "Chaos settings",
"properties" : {
"badResponsesFaultConfig" : {
"description" : "Settings for bad responses",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"responses" : {
"type" : "array",
"items" : {
"properties" : {
"status" : {
"type" : "integer",
"format" : "int32",
"description" : "The HTTP status for the response"
},
"body" : {
"type" : "string",
"description" : "The body of the HTTP response"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "The HTTP headers of the response"
}
},
"type" : "object"
},
"description" : "The possibles responses"
}
}
},
"largeRequestFaultConfig" : {
"description" : "Settings for large requests",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"additionalRequestSize" : {
"type" : "integer",
"format" : "int32",
"description" : "The size added to the request body in bytes. Added payload will be spaces only."
}
}
},
"largeResponseFaultConfig" : {
"description" : "Settings for large responses",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"additionalResponseSize" : {
"type" : "integer",
"format" : "int32",
"description" : "Add n 0 bytes"
}
}
},
"latencyInjectionFaultConfig" : {
"description" : "Settings for latency injection",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"from" : {
"type" : "number",
"description" : "The start range of latency added to the request"
},
"to" : {
"type" : "number",
"description" : "The end range of latency added to the request"
}
}
},
"enabled" : {
"type" : "boolean",
"description" : "Whether or not this config is enabled"
}
},
"type" : "object"
},
"timesPerDay" : {
"type" : "integer",
"format" : "int32",
"description" : "Number of time per day each service will be outage"
},
"outageDurationFrom" : {
"type" : "number",
"description" : "Start of outage duration range"
},
"startTime" : {
"type" : "string",
"description" : "Start time of Snow Monkey each day"
},
"includeUserFacingDescriptors" : {
"type" : "boolean",
"description" : "Whether or not user facing apps. will be impacted by Snow Monkey"
},
"targetGroups" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Groups impacted by Snow Monkey. If empty, all groups will be impacted"
},
"enabled" : {
"type" : "boolean",
"description" : "Whether or not this config is enabled"
},
"stopTime" : {
"type" : "string",
"description" : "Stop time of Snow Monkey each day"
},
"outageStrategy" : {
"description" : "",
"type" : "string",
"enum" : [ "AllServicesPerGroup", "OneServicePerGroup" ]
}
},
"type" : "object"
},
"scripts" : {
"description" : "global plugins settings. will be deprecated soon",
"properties" : {
"jobConfig" : {
"type" : "object",
"description" : "jobs enabled"
},
"enabled" : {
"type" : "boolean",
"description" : "Global scripts enabled"
},
"transformersConfig" : {
"type" : "object",
"description" : "transformers config"
},
"transformersRefs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "transformers enabled"
},
"preRouteRefs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "pre-route plugins enabled"
},
"sinkConfig" : {
"type" : "object",
"description" : "sinks config"
},
"jobRefs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "running jobs"
},
"validatorRefs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "validator enabled"
},
"sinkRefs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "sinks enabled"
},
"preRouteConfig" : {
"type" : "object",
"description" : "pre-route config"
},
"validatorConfig" : {
"type" : "object",
"description" : "validator config"
}
},
"type" : "object"
},
"perIpThrottlingQuota" : {
"type" : "integer",
"format" : "int64",
"description" : "Authorized number of calls per second globally per IP address, measured on 10 seconds"
},
"useCircuitBreakers" : {
"type" : "boolean",
"description" : "If enabled, services will be authorized to use circuit breakers"
},
"maxHttp10ResponseSize" : {
"type" : "integer",
"format" : "int64",
"description" : "The max size in bytes of an HTTP 1.0 response"
},
"tlsSettings" : {
"description" : "TLS settings",
"properties" : {
"trustedCAsServer" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "List for CAs trusted by otoroshi when performing TLS termination"
},
"includeJdkCaClient" : {
"type" : "boolean",
"description" : "Use known JDK CAs to build trust when performing request from otoroshi to backends"
},
"randomIfNotFound" : {
"type" : "boolean",
"description" : "Use a random one"
},
"defaultDomain" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"includeJdkCaServer" : {
"type" : "boolean",
"description" : "Use known JDK CAs to build trust for incoming request"
}
},
"type" : "object"
},
"statsdConfig" : {
"description" : "Statsd settings (agent connection)",
"type" : "object",
"properties" : {
"datadog" : {
"type" : "boolean",
"description" : "Datadog agent"
},
"host" : {
"type" : "string",
"description" : "The host of the StatsD agent"
},
"port" : {
"type" : "integer",
"format" : "int32",
"description" : "The port of the StatsD agent"
}
}
},
"autoLinkToDefaultGroup" : {
"type" : "boolean",
"description" : "If not defined, every new service descriptor will be added to the default group"
},
"alertsWebhooks" : {
"type" : "array",
"items" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of exporter",
"enum" : [ "elastic", "webhook", "kafka", "pulsar", "file", "mailer", "custom", "console", "metrics" ]
},
"url" : {
"type" : "string",
"description" : "The URL where events are posted"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Headers to authorize the call or whatever"
},
"mtlsConfig" : {
"description" : "TLS config when calling webhook",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
}
},
"type" : "object"
},
"description" : "Webhook that will receive all Otoroshi alert events"
},
"ipFiltering" : {
"description" : "Global ip filtering settings",
"properties" : {
"whitelist" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"blacklist" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"u2fLoginOnly" : {
"type" : "boolean",
"description" : "If enabled, login to backoffice through Auth0 will be disabled"
},
"userAgentSettings" : {
"description" : "Settings for useragent extraction",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "User agent extraction enabled"
}
},
"type" : "object"
}
},
"type" : "object"
},
"description" : "???"
},
"authModules" : {
"type" : "array",
"items" : {
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "desc", "name", "clientSideSessionEnabled", "basicAuth", "tags", "users", "sessionMaxAge", "webauthn", "userValidators", "id", "_loc", "metadata", "sessionCookieValues" ]
}, {
"required" : [ "type", "extraMetadata", "desc", "name", "rightsOverride", "clientId", "otoroshiRightsField", "clientSideSessionEnabled", "scope", "tags", "accessTokenField", "superAdmins", "sessionMaxAge", "refreshTokens", "loginUrl", "apiKeyTagsField", "otoroshiDataField", "userValidators", "emailField", "mtlsConfig", "tokenUrl", "useCookie", "id", "pkce", "authorizeUrl", "_loc", "callbackUrl", "proxy", "apiKeyMetaField", "clientSecret", "useJson", "oidConfig", "claims", "metadata", "noWildcardRedirectURI", "nameField", "introspectionUrl", "logoutUrl", "dataOverride", "userInfoUrl", "jwtVerifier", "readProfileFromToken", "sessionCookieValues" ]
}, {
"required" : [ "type", "extraMetadata", "desc", "name", "allowEmptyPassword", "groupFilters", "rightsOverride", "serverUrls", "clientSideSessionEnabled", "basicAuth", "searchBase", "groupRights", "tags", "superAdmins", "sessionMaxAge", "metadataField", "searchFilter", "adminUsername", "userValidators", "emailField", "extractProfileFilter", "userBase", "id", "_loc", "adminPassword", "metadata", "extractProfileFilterNot", "nameField", "extractProfile", "dataOverride", "sessionCookieValues" ]
}, {
"required" : [ "type", "accessTokenURL", "desc", "name", "authorizeURL", "rightsOverride", "consumerKey", "callbackURL", "profileURL", "clientSideSessionEnabled", "tags", "sessionMaxAge", "httpMethod", "userValidators", "id", "requestTokenURL", "_loc", "consumerSecret", "metadata", "sessionCookieValues" ]
}, {
"required" : [ "type", "desc", "name", "ssoProtocolBinding", "clientSideSessionEnabled", "emailAttributeName", "validatingCertificates", "tags", "singleLogoutProtocolBinding", "sessionMaxAge", "issuer", "signature", "userValidators", "singleLogoutUrl", "id", "_loc", "usedNameIDAsEmail", "singleSignOnUrl", "metadata", "validateAssertions", "nameIDFormat", "validateSignature", "credentials", "sessionCookieValues" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the type of the module",
"enum" : [ "saml", "oauth1", "oauth2", "ldap", "basic" ]
},
"desc" : {
"type" : "string",
"description" : "???"
},
"name" : {
"type" : "string",
"description" : "???"
},
"clientSideSessionEnabled" : {
"type" : "boolean",
"description" : "???"
},
"basicAuth" : {
"type" : "boolean",
"description" : "???"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"users" : {
"type" : "array",
"items" : {
"properties" : {
"metadata" : {
"type" : "object",
"description" : "???"
},
"password" : {
"type" : "string",
"description" : "???"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"email" : {
"type" : "string",
"description" : "???"
},
"webauthn" : {
"description" : "???",
"type" : "object",
"properties" : {
"handle" : {
"type" : "string",
"description" : "???"
},
"credentials" : {
"type" : "object",
"additionalProperties" : {
"type" : "object"
},
"description" : "???"
}
}
},
"rights" : {
"description" : "???",
"properties" : {
"rights" : {
"type" : "array",
"items" : {
"properties" : {
"tenant" : {
"description" : "Access rights on organizations",
"properties" : {
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
}
},
"type" : "object"
},
"teams" : {
"type" : "array",
"items" : {
"properties" : {
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
}
},
"type" : "object"
},
"description" : "Access rights on teams"
}
},
"type" : "object"
},
"description" : "Access rights of a user"
}
},
"type" : "object"
},
"name" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"sessionMaxAge" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"webauthn" : {
"type" : "boolean",
"description" : "???"
},
"userValidators" : {
"type" : "array",
"items" : {
"properties" : {
"path" : {
"type" : "string",
"description" : "???"
},
"value" : {
"type" : "object",
"description" : "???"
},
"error" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"description" : "???"
},
"id" : {
"type" : "string",
"description" : "???"
},
"_loc" : {
"description" : "???",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"sessionCookieValues" : {
"description" : "???",
"properties" : {
"httpOnly" : {
"type" : "boolean",
"description" : "???"
},
"secure" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"extraMetadata" : {
"type" : "object",
"description" : "???"
},
"rightsOverride" : {
"type" : "object",
"additionalProperties" : {
"properties" : {
"rights" : {
"type" : "array",
"items" : {
"properties" : {
"tenant" : {
"description" : "Access rights on organizations",
"properties" : {
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
}
},
"type" : "object"
},
"teams" : {
"type" : "array",
"items" : {
"properties" : {
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
}
},
"type" : "object"
},
"description" : "Access rights on teams"
}
},
"type" : "object"
},
"description" : "Access rights of a user"
}
},
"type" : "object"
},
"description" : "???"
},
"clientId" : {
"type" : "string",
"description" : "???"
},
"otoroshiRightsField" : {
"type" : "string",
"description" : "???"
},
"scope" : {
"type" : "string",
"description" : "???"
},
"accessTokenField" : {
"type" : "string",
"description" : "???"
},
"superAdmins" : {
"type" : "boolean",
"description" : "???"
},
"refreshTokens" : {
"type" : "boolean",
"description" : "???"
},
"loginUrl" : {
"type" : "string",
"description" : "???"
},
"apiKeyTagsField" : {
"type" : "string",
"description" : "???"
},
"otoroshiDataField" : {
"type" : "string",
"description" : "???"
},
"emailField" : {
"type" : "string",
"description" : "???"
},
"mtlsConfig" : {
"description" : "???",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"tokenUrl" : {
"type" : "string",
"description" : "???"
},
"useCookie" : {
"type" : "boolean",
"description" : "???"
},
"pkce" : {
"description" : "???",
"type" : "object",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"algorithm" : {
"type" : "string",
"description" : "???"
}
}
},
"authorizeUrl" : {
"type" : "string",
"description" : "???"
},
"callbackUrl" : {
"type" : "string",
"description" : "???"
},
"proxy" : {
"description" : "???",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"apiKeyMetaField" : {
"type" : "string",
"description" : "???"
},
"clientSecret" : {
"type" : "string",
"description" : "???"
},
"useJson" : {
"type" : "boolean",
"description" : "???"
},
"oidConfig" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"claims" : {
"type" : "string",
"description" : "???"
},
"noWildcardRedirectURI" : {
"type" : "boolean",
"description" : "???"
},
"nameField" : {
"type" : "string",
"description" : "???"
},
"introspectionUrl" : {
"type" : "string",
"description" : "???"
},
"logoutUrl" : {
"type" : "string",
"description" : "???"
},
"dataOverride" : {
"type" : "object",
"additionalProperties" : {
"type" : "object"
},
"description" : "???"
},
"userInfoUrl" : {
"type" : "string",
"description" : "???"
},
"jwtVerifier" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "size", "publicKey", "privateKey" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "secret", "base64" ]
}, {
"required" : [ "type", "url", "tlsConfig", "kty", "proxy", "headers", "ttl", "timeout" ]
}, {
"required" : [ "type", "onlyExposedCerts" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "publicKey", "privateKey" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
}
},
"readProfileFromToken" : {
"type" : "boolean",
"description" : "???"
},
"allowEmptyPassword" : {
"type" : "boolean",
"description" : "???"
},
"groupFilters" : {
"type" : "array",
"items" : {
"properties" : {
"group" : {
"type" : "string",
"description" : "???"
},
"tenant" : {
"description" : "???",
"properties" : {
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
}
},
"type" : "object"
},
"team" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"serverUrls" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"searchBase" : {
"type" : "string",
"description" : "???"
},
"groupRights" : {
"type" : "object",
"additionalProperties" : {
"properties" : {
"userRights" : {
"description" : "???",
"properties" : {
"rights" : {
"type" : "array",
"items" : {
"properties" : {
"tenant" : {
"description" : "Access rights on organizations",
"properties" : {
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
}
},
"type" : "object"
},
"teams" : {
"type" : "array",
"items" : {
"properties" : {
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
}
},
"type" : "object"
},
"description" : "Access rights on teams"
}
},
"type" : "object"
},
"description" : "Access rights of a user"
}
},
"type" : "object"
},
"users" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"metadataField" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"searchFilter" : {
"type" : "string",
"description" : "???"
},
"adminUsername" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"extractProfileFilter" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"userBase" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"adminPassword" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"extractProfileFilterNot" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"extractProfile" : {
"type" : "boolean",
"description" : "???"
},
"accessTokenURL" : {
"type" : "string",
"description" : "???"
},
"authorizeURL" : {
"type" : "string",
"description" : "???"
},
"consumerKey" : {
"type" : "string",
"description" : "???"
},
"callbackURL" : {
"type" : "string",
"description" : "???"
},
"profileURL" : {
"type" : "string",
"description" : "???"
},
"httpMethod" : {
"description" : "???",
"properties" : { },
"type" : "object"
},
"requestTokenURL" : {
"type" : "string",
"description" : "???"
},
"consumerSecret" : {
"type" : "string",
"description" : "???"
},
"ssoProtocolBinding" : {
"description" : "???",
"properties" : { },
"type" : "object"
},
"emailAttributeName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"validatingCertificates" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"singleLogoutProtocolBinding" : {
"description" : "???",
"properties" : { },
"type" : "object"
},
"issuer" : {
"type" : "string",
"description" : "???"
},
"signature" : {
"description" : "???",
"properties" : {
"algorithm" : {
"description" : "???",
"properties" : { },
"type" : "object"
},
"canocalizationMethod" : {
"description" : "???",
"properties" : { },
"type" : "object"
}
},
"type" : "object"
},
"singleLogoutUrl" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"usedNameIDAsEmail" : {
"type" : "boolean",
"description" : "???"
},
"singleSignOnUrl" : {
"type" : "string",
"description" : "???"
},
"validateAssertions" : {
"type" : "boolean",
"description" : "???"
},
"nameIDFormat" : {
"description" : "???",
"properties" : { },
"type" : "object"
},
"validateSignature" : {
"type" : "boolean",
"description" : "???"
},
"credentials" : {
"description" : "???",
"properties" : {
"signingKey" : {
"description" : "???",
"properties" : {
"certificate" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"useOtoroshiCertificate" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"encryptionKey" : {
"description" : "???",
"properties" : {
"certificate" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"useOtoroshiCertificate" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"signedDocuments" : {
"type" : "boolean",
"description" : "???"
},
"encryptedAssertions" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
}
}
},
"description" : "???"
},
"tcpServices" : {
"type" : "array",
"items" : {
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "Service enabled"
},
"description" : {
"type" : "string",
"description" : "Entity description"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Entity metadata"
},
"port" : {
"type" : "integer",
"format" : "int32",
"description" : "network port"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Entity tags"
},
"rules" : {
"type" : "array",
"items" : {
"properties" : {
"domain" : {
"type" : "string",
"description" : "match on SNI domain"
},
"targets" : {
"type" : "array",
"items" : {
"properties" : {
"host" : {
"type" : "string",
"description" : "Target host"
},
"ip" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"port" : {
"type" : "integer",
"format" : "int32",
"description" : "Target port"
},
"tls" : {
"type" : "boolean",
"description" : "Use tls"
}
},
"type" : "object"
},
"description" : "TCP targets"
}
},
"type" : "object"
},
"description" : "Routing rules"
},
"clientAuth" : {
"description" : "Client authentication mode",
"type" : "string",
"enum" : [ "Need", "None", "Want" ]
},
"interface" : {
"type" : "string",
"description" : "Network interface"
},
"sni" : {
"description" : "SNI settings",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "SNI extraction enabled"
},
"forwardIfNoMatch" : {
"type" : "boolean",
"description" : ""
},
"forwardsTo" : {
"description" : "forwards call to",
"properties" : {
"host" : {
"type" : "string",
"description" : "Target host"
},
"ip" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"port" : {
"type" : "integer",
"format" : "int32",
"description" : "Target port"
},
"tls" : {
"type" : "boolean",
"description" : "Use tls"
}
},
"type" : "object"
}
},
"type" : "object"
},
"id" : {
"type" : "string",
"description" : "Entity id"
},
"_loc" : {
"description" : "Entity location",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"name" : {
"type" : "string",
"description" : "Entity name"
},
"tls" : {
"description" : "TLS mode",
"type" : "string",
"enum" : [ "Disabled", "Enabled", "PassThrough" ]
}
},
"type" : "object"
},
"description" : "???"
},
"certificates" : {
"type" : "array",
"items" : {
"properties" : {
"certType" : {
"type" : "string",
"description" : "the kind of certificate",
"enum" : [ "client", "ca", "letsEncrypt", "keypair", "selfSigned", "certificate" ]
},
"name" : {
"type" : "string",
"description" : "Entity name"
},
"revoked" : {
"type" : "boolean",
"description" : "Certificate is revoked"
},
"subject" : {
"type" : "string",
"description" : "Certificate subject"
},
"description" : {
"type" : "string",
"description" : "Entity description"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Entity tags"
},
"domain" : {
"type" : "string",
"description" : "Certificate domain"
},
"ca" : {
"type" : "boolean",
"description" : "Is cert a CA ?"
},
"keypair" : {
"type" : "boolean",
"description" : "Is cert used for its keypair only ?"
},
"letsEncrypt" : {
"type" : "boolean",
"description" : "Let's encrypt (ACME) generated"
},
"autoRenew" : {
"type" : "boolean",
"description" : "Auto renew cert"
},
"caRef" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"to" : {
"type" : "number",
"description" : "Stop date"
},
"exposed" : {
"type" : "boolean",
"description" : "Is the cert exposed (public key exposed in jwks.json)"
},
"id" : {
"type" : "string",
"description" : "Entity id"
},
"_loc" : {
"description" : "Entity location",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"sans" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Certificate SANs"
},
"client" : {
"type" : "boolean",
"description" : "Is cert a client cert ?"
},
"from" : {
"type" : "number",
"description" : "Start date"
},
"valid" : {
"type" : "boolean",
"description" : "Is cert valid"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Entity metadata"
},
"privateKey" : {
"type" : "string",
"description" : "Certificate private key (PEM encoded)"
},
"selfSigned" : {
"type" : "boolean",
"description" : "Is cert self signed"
},
"chain" : {
"type" : "string",
"description" : "Certicates chain (PEM encoded)"
},
"password" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"description" : "???"
},
"simpleAdmins" : {
"type" : "array",
"items" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of admin",
"enum" : [ "simple", "webauthn" ]
},
"username" : {
"type" : "string",
"description" : "User username"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Entity tags"
},
"label" : {
"type" : "string",
"description" : "User label"
},
"_loc" : {
"description" : "Entity location",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"typ" : {
"description" : "Admin kind",
"type" : "string",
"enum" : [ "SIMPLE", "WEBAUTHN" ]
},
"createdAt" : {
"type" : "number",
"description" : "User creation date"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Entity metadata"
},
"rights" : {
"description" : "User rights",
"properties" : {
"rights" : {
"type" : "array",
"items" : {
"properties" : {
"tenant" : {
"description" : "Access rights on organizations",
"properties" : {
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
}
},
"type" : "object"
},
"teams" : {
"type" : "array",
"items" : {
"properties" : {
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
}
},
"type" : "object"
},
"description" : "Access rights on teams"
}
},
"type" : "object"
},
"description" : "Access rights of a user"
}
},
"type" : "object"
},
"password" : {
"type" : "string",
"description" : "User password (bcrypt hashed)"
}
},
"type" : "object"
},
"description" : "???"
},
"wasmPlugins" : {
"type" : "array",
"items" : {
"properties" : {
"_loc" : {
"description" : "???",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"name" : {
"type" : "string",
"description" : "???"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"steps" : {
"type" : "array",
"items" : {
"properties" : { },
"type" : "object"
},
"description" : "???"
},
"id" : {
"type" : "string",
"description" : "???"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"description" : {
"type" : "string",
"description" : "???"
},
"config" : {
"description" : "???",
"properties" : {
"allowedHosts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"memoryPages" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"allowedPaths" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"instances" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"config" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"authorizations" : {
"description" : "???",
"properties" : {
"proxyStateAccess" : {
"type" : "boolean",
"description" : "???"
},
"httpAccess" : {
"type" : "boolean",
"description" : "???"
},
"globalMapAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"pluginDataStoreAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"pluginMapAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"proxyHttpCallTimeout" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"configurationAccess" : {
"type" : "boolean",
"description" : "???"
},
"globalDataStoreAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
}
},
"type" : "object"
},
"opa" : {
"type" : "boolean",
"description" : "???"
},
"wasi" : {
"type" : "boolean",
"description" : "???"
},
"functionName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
}
},
"type" : "object"
},
"description" : "???"
},
"serviceGroups" : {
"type" : "array",
"items" : {
"properties" : {
"id" : {
"type" : "string",
"description" : "A unique random string to identify your service"
},
"_loc" : {
"description" : "Entity location",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"name" : {
"type" : "string",
"description" : "The name of your service. Only for debug and human readability purposes"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Just a bunch of random properties"
},
"description" : {
"type" : "string",
"description" : "Entity description"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Entity tags"
}
},
"type" : "object"
},
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgClientCredentials" : {
"type" : "object",
"description" : "???",
"properties" : {
"default_key_pair" : {
"type" : "string",
"description" : "???"
},
"expiration" : {
"type" : "number",
"description" : "???"
},
"secure" : {
"type" : "boolean",
"description" : "???"
},
"biscuit" : {
"description" : "???",
"type" : "object",
"properties" : {
"privkey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"checks" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"facts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"rules" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"domain" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.models.Canary" : {
"type" : "object",
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"traffic" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"targets" : {
"type" : "array",
"items" : {
"properties" : {
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"host" : {
"type" : "string",
"description" : "???"
},
"weight" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"protocol" : {
"type" : "string",
"enum" : [ "HTTP/1.0", "HTTP/1.1", "HTTP/2.0", "HTTP/3.0" ],
"description" : "???"
},
"predicate" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"dc" : {
"type" : "string",
"description" : "???"
},
"positions" : {
"type" : "array",
"items" : {
"properties" : {
"latitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"longitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"radius" : {
"type" : "number",
"format" : "double",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"provider" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataCenter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"rack" : {
"type" : "string",
"description" : "???"
},
"region" : {
"type" : "string",
"description" : "???"
},
"zone" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"ipAddress" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"mtlsConfig" : {
"description" : "???",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"scheme" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"root" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgIzanamiV1CanaryConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"client_id" : {
"type" : "string",
"description" : "???"
},
"experiment_id" : {
"type" : "string",
"description" : "???"
},
"route_config" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"tls" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "Enabled"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
},
"loose" : {
"type" : "boolean",
"description" : "Loose verification"
},
"trust_all" : {
"type" : "boolean",
"description" : "Trust any certificate"
},
"trusted_certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
}
},
"type" : "object"
},
"timeout" : {
"type" : "number",
"description" : "???"
},
"izanami_url" : {
"type" : "string",
"description" : "???"
},
"client_secret" : {
"type" : "string",
"description" : "???"
},
"config_id" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.next.models.NgRouteDomainAndPathWrapper" : {
"type" : "object",
"description" : "???",
"properties" : {
"route" : {
"description" : "???",
"properties" : {
"debug_flow" : {
"type" : "boolean",
"description" : "Enable report debugging"
},
"enabled" : {
"type" : "boolean",
"description" : "Is the route enabled"
},
"name" : {
"type" : "string",
"description" : "The name of the route"
},
"id" : {
"type" : "string",
"description" : "The ud of the route"
},
"export_reporting" : {
"type" : "boolean",
"description" : "Export the execution reporting through standard data exporter"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "The metadata of the route"
},
"frontend" : {
"description" : "The frontend of the route",
"properties" : {
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "the headers that will be matched"
},
"query" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "the query params that will be matched"
},
"domains" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "The domain and path that will be matched"
},
"methods" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "the http methods that will be matched"
},
"exact" : {
"type" : "boolean",
"description" : "Match on exact path ?"
},
"strip_path" : {
"type" : "boolean",
"description" : "Is path stripped from backend request"
}
},
"type" : "object"
},
"_loc" : {
"description" : "The location of the route",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "The tags of the route"
},
"capture" : {
"type" : "boolean",
"description" : "Capture http traffic"
},
"groups" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "The groups of the route"
},
"backend_ref" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"description" : {
"type" : "string",
"description" : "The description of the route"
},
"backend" : {
"description" : "The backend of the route",
"properties" : {
"root" : {
"type" : "string",
"description" : "The root path of the backend or the full rewrite path"
},
"health_check" : {
"description" : "???",
"type" : "object",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"url" : {
"type" : "string",
"description" : "???"
},
"timeout" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
}
},
"client" : {
"description" : "Client config. of the backend",
"properties" : {
"idle_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout on idle connection"
},
"sample_interval" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify the sliding window time for the circuit breaker in milliseconds, after this time, error count will be reseted"
},
"cache_connection_settings" : {
"description" : "Cached connection settings",
"properties" : {
"queue_size" : {
"type" : "integer",
"format" : "int32",
"description" : "How much request can be queue before dropping it"
},
"enabled" : {
"type" : "boolean",
"description" : "Is cached connection enabled"
}
},
"type" : "object"
},
"call_and_stream_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (hard timeout, connection will be closed after that duration)"
},
"custom_timeouts" : {
"type" : "array",
"items" : {
"properties" : {
"connection_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout at connection"
},
"call_and_stream_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (hard timeout, connection will be closed after that duration)"
},
"path" : {
"type" : "string",
"description" : "path on which this configuration works"
},
"call_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (soft timeout as it's enforced by the circuit breaker)"
},
"idle_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout on idle connection"
},
"global_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long the global call (with retries) should last at most in milliseconds"
}
},
"type" : "object"
},
"description" : "Custom timeouts per path"
},
"connection_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout at connection"
},
"call_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (soft timeout as it's enforced by the circuit breaker)"
},
"global_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long the global call (with retries) should last at most in milliseconds"
},
"retry_initial_delay" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify the delay between two retries. Each retry, the delay is multiplied by the backoff factor"
},
"backoff_factor" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify the factor to multiply the delay for each retry"
},
"proxy" : {
"description" : "Web proxy settings for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"retries" : {
"type" : "integer",
"format" : "int32",
"description" : "Specify how many times the client will try to fetch the result of the request after an error before giving up."
},
"max_errors" : {
"type" : "integer",
"format" : "int32",
"description" : "Specify how many errors can pass before opening the circuit breaker"
}
},
"type" : "object"
},
"load_balancing" : {
"description" : "Loadbalancing config og the backend",
"properties" : {
"type" : {
"type" : "string",
"enum" : [ "BestResponseTime", "IpAddressHash", "Random", "RoundRobin", "Sticky", "WeightedBestResponseTime" ]
},
"ratio" : {
"type" : "number",
"format" : "double"
}
},
"type" : "object"
},
"rewrite" : {
"type" : "boolean",
"description" : "Does the backend performs a full url rewrite ?"
},
"targets" : {
"type" : "array",
"items" : {
"properties" : {
"ip_address" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"protocol" : {
"type" : "string",
"enum" : [ "HTTP/1.0", "HTTP/1.1", "HTTP/2.0", "HTTP/3.0" ],
"description" : "Protocol for the target"
},
"predicate" : {
"description" : "Predicate to choose this target",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"dc" : {
"type" : "string",
"description" : "???"
},
"positions" : {
"type" : "array",
"items" : {
"properties" : {
"latitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"longitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"radius" : {
"type" : "number",
"format" : "double",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"provider" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataCenter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"rack" : {
"type" : "string",
"description" : "???"
},
"region" : {
"type" : "string",
"description" : "???"
},
"zone" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"tls_config" : {
"description" : "TLS settings to contact this target",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "Enabled"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
},
"loose" : {
"type" : "boolean",
"description" : "Loose verification"
},
"trust_all" : {
"type" : "boolean",
"description" : "Trust any certificate"
},
"trusted_certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
}
},
"type" : "object"
},
"tls" : {
"type" : "boolean",
"description" : "Does the target uses TLS"
},
"port" : {
"type" : "integer",
"format" : "int32",
"description" : "port of the target"
},
"id" : {
"type" : "string",
"description" : "id of the target"
},
"weight" : {
"type" : "integer",
"format" : "int32",
"description" : "The weight of the target when choosing"
},
"hostname" : {
"type" : "string",
"description" : "hostname of the target"
}
},
"type" : "object"
},
"description" : "The targets of the backend"
}
},
"type" : "object"
}
},
"type" : "object"
},
"domain" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.plugins.biscuit.BiscuitToken" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.HMACValidatorConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"secret" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.next.plugins.NgDeferPlugin" : {
"type" : "object",
"description" : "???",
"properties" : {
"duration" : {
"type" : "number",
"description" : "???"
}
}
},
"otoroshi.next.plugins.EurekaServerConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"eviction_timeout" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
}
},
"otoroshi.models.BadResponse" : {
"type" : "object",
"description" : "Settings for a bad response return (chaos engineering)",
"properties" : {
"status" : {
"type" : "integer",
"format" : "int32",
"description" : "The HTTP status for the response"
},
"body" : {
"type" : "string",
"description" : "The body of the HTTP response"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "The HTTP headers of the response"
}
}
},
"otoroshi.next.plugins.wrappers.RequestSinkWrapper" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.CanaryMode" : {
"type" : "object",
"description" : "???",
"properties" : {
"traffic" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"root" : {
"type" : "string",
"description" : "???"
},
"targets" : {
"type" : "array",
"items" : {
"properties" : {
"ip_address" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"protocol" : {
"type" : "string",
"enum" : [ "HTTP/1.0", "HTTP/1.1", "HTTP/2.0", "HTTP/3.0" ],
"description" : "Protocol for the target"
},
"predicate" : {
"description" : "Predicate to choose this target",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"dc" : {
"type" : "string",
"description" : "???"
},
"positions" : {
"type" : "array",
"items" : {
"properties" : {
"latitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"longitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"radius" : {
"type" : "number",
"format" : "double",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"provider" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataCenter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"rack" : {
"type" : "string",
"description" : "???"
},
"region" : {
"type" : "string",
"description" : "???"
},
"zone" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"tls_config" : {
"description" : "TLS settings to contact this target",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "Enabled"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
},
"loose" : {
"type" : "boolean",
"description" : "Loose verification"
},
"trust_all" : {
"type" : "boolean",
"description" : "Trust any certificate"
},
"trusted_certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
}
},
"type" : "object"
},
"tls" : {
"type" : "boolean",
"description" : "Does the target uses TLS"
},
"port" : {
"type" : "integer",
"format" : "int32",
"description" : "port of the target"
},
"id" : {
"type" : "string",
"description" : "id of the target"
},
"weight" : {
"type" : "integer",
"format" : "int32",
"description" : "The weight of the target when choosing"
},
"hostname" : {
"type" : "string",
"description" : "hostname of the target"
}
},
"type" : "object"
},
"description" : "???"
}
}
},
"otoroshi.plugins.clientcert.HasClientCertMatchingApikeyValidator" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.plugins.authcallers.BasicAuthCallerConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"username" : {
"type" : "string",
"description" : "???"
},
"password" : {
"type" : "string",
"description" : "???"
},
"headerName" : {
"type" : "string",
"description" : "???"
},
"headerValueFormat" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.next.plugins.RemoveHeadersOut" : {
"type" : "object",
"description" : "???",
"properties" : {
"names" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.env.Env" : {
"type" : "object",
"description" : "???",
"properties" : {
"circuitBeakersHolder" : {
"description" : "???",
"properties" : { },
"type" : "object"
}
}
},
"otoroshi.next.plugins.TailscaleCert" : {
"type" : "object",
"description" : "???",
"properties" : {
"raw" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgHasAllowedUsersValidator" : {
"type" : "object",
"description" : "???",
"properties" : {
"profile_not_match" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"profile_match" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"email_domains" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"usernames" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"metadata_match" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"metadata_not_match" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"emails" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.plugins.jwt.JwtUserExtractor" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.models.NgRoute" : {
"type" : "object",
"description" : "A routing primitive representing how a request is matched and where the request is forwarded",
"properties" : {
"debug_flow" : {
"type" : "boolean",
"description" : "Enable report debugging"
},
"enabled" : {
"type" : "boolean",
"description" : "Is the route enabled"
},
"name" : {
"type" : "string",
"description" : "The name of the route"
},
"id" : {
"type" : "string",
"description" : "The ud of the route"
},
"export_reporting" : {
"type" : "boolean",
"description" : "Export the execution reporting through standard data exporter"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "The metadata of the route"
},
"frontend" : {
"description" : "The frontend of the route",
"properties" : {
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "the headers that will be matched"
},
"query" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "the query params that will be matched"
},
"domains" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "The domain and path that will be matched"
},
"methods" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "the http methods that will be matched"
},
"exact" : {
"type" : "boolean",
"description" : "Match on exact path ?"
},
"strip_path" : {
"type" : "boolean",
"description" : "Is path stripped from backend request"
}
},
"type" : "object"
},
"_loc" : {
"description" : "The location of the route",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "The tags of the route"
},
"capture" : {
"type" : "boolean",
"description" : "Capture http traffic"
},
"groups" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "The groups of the route"
},
"backend_ref" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"description" : {
"type" : "string",
"description" : "The description of the route"
},
"backend" : {
"description" : "The backend of the route",
"properties" : {
"root" : {
"type" : "string",
"description" : "The root path of the backend or the full rewrite path"
},
"health_check" : {
"description" : "???",
"type" : "object",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"url" : {
"type" : "string",
"description" : "???"
},
"timeout" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
}
},
"client" : {
"description" : "Client config. of the backend",
"properties" : {
"idle_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout on idle connection"
},
"sample_interval" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify the sliding window time for the circuit breaker in milliseconds, after this time, error count will be reseted"
},
"cache_connection_settings" : {
"description" : "Cached connection settings",
"properties" : {
"queue_size" : {
"type" : "integer",
"format" : "int32",
"description" : "How much request can be queue before dropping it"
},
"enabled" : {
"type" : "boolean",
"description" : "Is cached connection enabled"
}
},
"type" : "object"
},
"call_and_stream_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (hard timeout, connection will be closed after that duration)"
},
"custom_timeouts" : {
"type" : "array",
"items" : {
"properties" : {
"connection_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout at connection"
},
"call_and_stream_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (hard timeout, connection will be closed after that duration)"
},
"path" : {
"type" : "string",
"description" : "path on which this configuration works"
},
"call_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (soft timeout as it's enforced by the circuit breaker)"
},
"idle_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout on idle connection"
},
"global_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long the global call (with retries) should last at most in milliseconds"
}
},
"type" : "object"
},
"description" : "Custom timeouts per path"
},
"connection_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout at connection"
},
"call_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (soft timeout as it's enforced by the circuit breaker)"
},
"global_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long the global call (with retries) should last at most in milliseconds"
},
"retry_initial_delay" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify the delay between two retries. Each retry, the delay is multiplied by the backoff factor"
},
"backoff_factor" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify the factor to multiply the delay for each retry"
},
"proxy" : {
"description" : "Web proxy settings for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"retries" : {
"type" : "integer",
"format" : "int32",
"description" : "Specify how many times the client will try to fetch the result of the request after an error before giving up."
},
"max_errors" : {
"type" : "integer",
"format" : "int32",
"description" : "Specify how many errors can pass before opening the circuit breaker"
}
},
"type" : "object"
},
"load_balancing" : {
"description" : "Loadbalancing config og the backend",
"properties" : {
"type" : {
"type" : "string",
"enum" : [ "BestResponseTime", "IpAddressHash", "Random", "RoundRobin", "Sticky", "WeightedBestResponseTime" ]
},
"ratio" : {
"type" : "number",
"format" : "double"
}
},
"type" : "object"
},
"rewrite" : {
"type" : "boolean",
"description" : "Does the backend performs a full url rewrite ?"
},
"targets" : {
"type" : "array",
"items" : {
"properties" : {
"ip_address" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"protocol" : {
"type" : "string",
"enum" : [ "HTTP/1.0", "HTTP/1.1", "HTTP/2.0", "HTTP/3.0" ],
"description" : "Protocol for the target"
},
"predicate" : {
"description" : "Predicate to choose this target",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"dc" : {
"type" : "string",
"description" : "???"
},
"positions" : {
"type" : "array",
"items" : {
"properties" : {
"latitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"longitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"radius" : {
"type" : "number",
"format" : "double",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"provider" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataCenter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"rack" : {
"type" : "string",
"description" : "???"
},
"region" : {
"type" : "string",
"description" : "???"
},
"zone" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"tls_config" : {
"description" : "TLS settings to contact this target",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "Enabled"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
},
"loose" : {
"type" : "boolean",
"description" : "Loose verification"
},
"trust_all" : {
"type" : "boolean",
"description" : "Trust any certificate"
},
"trusted_certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
}
},
"type" : "object"
},
"tls" : {
"type" : "boolean",
"description" : "Does the target uses TLS"
},
"port" : {
"type" : "integer",
"format" : "int32",
"description" : "port of the target"
},
"id" : {
"type" : "string",
"description" : "id of the target"
},
"weight" : {
"type" : "integer",
"format" : "int32",
"description" : "The weight of the target when choosing"
},
"hostname" : {
"type" : "string",
"description" : "hostname of the target"
}
},
"type" : "object"
},
"description" : "The targets of the backend"
}
},
"type" : "object"
}
}
},
"otoroshi.auth.SAMLSignatureAlgorithm" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.ForceHttpsTraffic" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.models.GlobalConfig" : {
"type" : "object",
"description" : "The global config (dynamic) for otoroshi",
"properties" : {
"geolocationSettings" : {
"description" : "Settings for geolocation extraction",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "enabled", "apikey", "timeout" ]
}, {
"required" : [ "type", "enabled", "path" ]
}, {
"required" : [ "type" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"enum" : [ "none" ]
},
"enabled" : {
"type" : "boolean",
"description" : "Geolocation using maxmind db enabled"
},
"apikey" : {
"type" : "string",
"description" : "IpStack apikey"
},
"timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "API call timeout"
},
"path" : {
"type" : "string",
"description" : "Maxmlind db file path"
}
}
},
"alertsEmails" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Email addresses that will receive all Otoroshi alert events"
},
"throttlingQuota" : {
"type" : "integer",
"format" : "int64",
"description" : "Authorized number of calls per second globally, measured on 10 seconds"
},
"anonymousReporting" : {
"type" : "boolean",
"description" : "???"
},
"maxWebhookSize" : {
"type" : "integer",
"format" : "int32",
"description" : "Max number of items in webhooks"
},
"env" : {
"type" : "object",
"description" : "???"
},
"maxConcurrentRequests" : {
"type" : "integer",
"format" : "int64",
"description" : "The number of authorized request processed at the same time"
},
"cleverSettings" : {
"description" : "Optional CleverCloud configuration",
"type" : "object",
"properties" : {
"consumerSecret" : {
"type" : "string",
"description" : "Clever-Cloud oauth consumer secret"
},
"consumerKey" : {
"type" : "string",
"description" : "Clever-Cloud oauth consumer key"
},
"secret" : {
"type" : "string",
"description" : "Clever-Cloud oauth secret"
},
"token" : {
"type" : "string",
"description" : "Clever-Cloud oauth token"
},
"orgaId" : {
"type" : "string",
"description" : "Clever-Cloud organization id"
}
}
},
"templates" : {
"description" : "The otoroshi default templates for entities",
"properties" : {
"team" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"script" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"apikey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"group" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"tcpService" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"verifier" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"service" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"target" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certificate" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataExporter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"route" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"backend" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"template" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"tenant" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"authConfig" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"descriptor" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"endlessIpAddresses" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "IP addresses for which any request to Otoroshi will respond with 128 Gb of zeros"
},
"plugins" : {
"description" : "global plugins settings",
"properties" : {
"config" : {
"type" : "object",
"description" : "Plugins configuration"
},
"enabled" : {
"type" : "boolean",
"description" : "Plugins enabled"
},
"excluded" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Excluded paths"
},
"refs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Enabled plugins"
}
},
"type" : "object"
},
"kafkaConfig" : {
"description" : "Kafka settings",
"type" : "object",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of exporter",
"enum" : [ "elastic", "webhook", "kafka", "pulsar", "file", "mailer", "custom", "console", "metrics" ]
},
"sendEvents" : {
"type" : "boolean",
"description" : "Send events to it, or just connect"
},
"truststore" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"hostValidation" : {
"type" : "boolean",
"description" : "Enabled TLS hostname validation"
},
"servers" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "URLs of the kafka servers"
},
"mtlsConfig" : {
"description" : "TLS config to access the cluster",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"securityProtocol" : {
"type" : "string",
"description" : "Used security protocol"
},
"keystore" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"topic" : {
"type" : "string",
"description" : "Optional kafka topic (otoroshi-events by default)"
},
"keyPass" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"saslConfig" : {
"description" : "SASL configuration",
"type" : "object",
"properties" : {
"username" : {
"type" : "string",
"description" : "SASL username"
},
"password" : {
"type" : "string",
"description" : "SASL password"
},
"mechanism" : {
"type" : "string",
"description" : "SASL login mechanism"
}
}
}
}
},
"maxLogsSize" : {
"type" : "integer",
"format" : "int32",
"description" : "Number of events kept locally"
},
"proxies" : {
"description" : "Web proxies settings",
"properties" : {
"elastic" : {
"description" : "Web proxy used to call elastic",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"eventsWebhooks" : {
"description" : "Web proxy used to call webhooks",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"jwk" : {
"description" : "Web proxy used to fetch jwks",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"auth" : {
"description" : "Web proxy used to call OAuth providers",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"clevercloud" : {
"description" : "Web proxy used to call clevercloud",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"alertEmails" : {
"description" : "Web proxy used to send alert emails",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"authority" : {
"description" : "Web proxy used to check authorities",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"services" : {
"description" : "Web proxy used to access services targets",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
}
},
"type" : "object"
},
"enableEmbeddedMetrics" : {
"type" : "boolean",
"description" : "Enable embedded metrics"
},
"elasticReadsConfig" : {
"description" : "Config. for elastic reads",
"type" : "object",
"properties" : {
"type" : {
"type" : "string",
"description" : "null type",
"enum" : [ "elastic", "webhook", "kafka", "pulsar", "file", "mailer", "custom", "console", "metrics" ],
"nullable" : true
},
"sendWorkers" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"applyTemplate" : {
"type" : "boolean",
"description" : "Enable template creation/update"
},
"uris" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"mtlsConfig" : {
"description" : "TLS settings for the http client",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"version" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"maxBulkSize" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Additionnal headers in the http request"
},
"indexSettings" : {
"description" : "Indexation settings",
"properties" : {
"clientSide" : {
"type" : "boolean",
"description" : "Enable index splitting on client side"
},
"numberOfShards" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"numberOfReplicas" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"interval" : {
"description" : "Index splitting interval",
"properties" : { },
"type" : "object"
}
},
"type" : "object"
},
"user" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"index" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"password" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"trustXForwarded" : {
"type" : "boolean",
"description" : "Use X-Forwarded-* headers for routing"
},
"quotasSettings" : {
"description" : "Settings to generate alert when an apikey almost exceeded or exceeded its quotas",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "Is quotas alert enabled"
},
"dailyQuotasThreshold" : {
"type" : "number",
"format" : "double",
"description" : "The daily quotas threshold before generating alert"
},
"monthlyQuotasThreshold" : {
"type" : "number",
"format" : "double",
"description" : "The monthly quotas threshold before generating alert"
}
},
"type" : "object"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Entity tags"
},
"limitConcurrentRequests" : {
"type" : "boolean",
"description" : "If enabled, Otoroshi will reject new request if too much at the same time"
},
"useAkkaHttpClient" : {
"type" : "boolean",
"description" : "Globally use akka http client for everything"
},
"elasticWritesConfigs" : {
"type" : "array",
"items" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "null type",
"enum" : [ "elastic", "webhook", "kafka", "pulsar", "file", "mailer", "custom", "console", "metrics" ],
"nullable" : true
},
"sendWorkers" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"applyTemplate" : {
"type" : "boolean",
"description" : "Enable template creation/update"
},
"uris" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"mtlsConfig" : {
"description" : "TLS settings for the http client",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"version" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"maxBulkSize" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Additionnal headers in the http request"
},
"indexSettings" : {
"description" : "Indexation settings",
"properties" : {
"clientSide" : {
"type" : "boolean",
"description" : "Enable index splitting on client side"
},
"numberOfShards" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"numberOfReplicas" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"interval" : {
"description" : "Index splitting interval",
"properties" : { },
"type" : "object"
}
},
"type" : "object"
},
"user" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"index" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"password" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"description" : "Configs. for Elastic writes"
},
"logAnalyticsOnServer" : {
"type" : "boolean",
"description" : "Log analytics event on the server"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Entity metadata"
},
"apiReadOnly" : {
"type" : "boolean",
"description" : "If enabled, Admin API won't be able to write/update/delete entities"
},
"backOfficeAuthRef" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"streamEntityOnly" : {
"type" : "boolean",
"description" : "HTTP will be streamed only. Doesn't work with old browsers"
},
"otoroshiId" : {
"type" : "string",
"description" : "Unique id for this otoroshi instance"
},
"mailerSettings" : {
"description" : "Optional mailer configuration",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type" ]
}, {
"required" : [ "type", "url", "headers", "to" ]
}, {
"required" : [ "type", "eu", "apiKey", "domain", "to" ]
}, {
"required" : [ "type", "apiKeyPublic", "apiKeyPrivate", "to" ]
}, {
"required" : [ "type" ]
}, {
"required" : [ "type", "apiKey", "to" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of exporter",
"enum" : [ "elastic", "webhook", "kafka", "pulsar", "file", "mailer", "custom", "console", "metrics" ]
},
"url" : {
"type" : "string",
"description" : "Sender URL"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Sender headers"
},
"to" : {
"type" : "array",
"items" : {
"properties" : {
"name" : {
"type" : "string",
"description" : "Destination name"
},
"email" : {
"type" : "string",
"description" : "Email address"
}
},
"type" : "object"
},
"description" : "Destination email address"
},
"eu" : {
"type" : "boolean",
"description" : "European tenant"
},
"apiKey" : {
"type" : "string",
"description" : "Sendgrid apikey"
},
"domain" : {
"type" : "string",
"description" : "Mailgun domain"
},
"apiKeyPublic" : {
"type" : "string",
"description" : "Public key"
},
"apiKeyPrivate" : {
"type" : "string",
"description" : "Private key"
}
}
},
"lines" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Possibles lines for Otoroshi"
},
"extensions" : {
"type" : "object",
"additionalProperties" : {
"type" : "object"
},
"description" : "???"
},
"middleFingers" : {
"type" : "boolean",
"description" : "Use middle finger emoji as a response character for endless HTTP responses"
},
"analyticsWebhooks" : {
"type" : "array",
"items" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of exporter",
"enum" : [ "elastic", "webhook", "kafka", "pulsar", "file", "mailer", "custom", "console", "metrics" ]
},
"url" : {
"type" : "string",
"description" : "The URL where events are posted"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Headers to authorize the call or whatever"
},
"mtlsConfig" : {
"description" : "TLS config when calling webhook",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
}
},
"type" : "object"
},
"description" : "Webhook that will receive all internal Otoroshi events"
},
"autoCert" : {
"description" : "Auto certs settings",
"properties" : {
"allowed" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "allowed domains"
},
"enabled" : {
"type" : "boolean",
"description" : "Enable auto cert"
},
"replyNicely" : {
"type" : "boolean",
"description" : "Reply TLS error with an auto generated certificate for the domain"
},
"notAllowed" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "not allowed domains"
},
"caRef" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"maintenanceMode" : {
"type" : "boolean",
"description" : "Global maintenant mode"
},
"initWithNewEngine" : {
"type" : "boolean",
"description" : "Was this instance init with new engine as default"
},
"letsEncryptSettings" : {
"description" : "Let's encrypt (ACME) settings",
"properties" : {
"privateKey" : {
"type" : "string",
"description" : "Let's encrypt (ACME) private key"
},
"contacts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Let's encrypt (ACME) contacts"
},
"emails" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Let's encrypt (ACME) contact emails"
},
"enabled" : {
"type" : "boolean",
"description" : "Let's encrypt (ACME) enabled"
},
"publicKey" : {
"type" : "string",
"description" : "Let's encrypt (ACME) public key"
},
"server" : {
"type" : "string",
"description" : "Let's encrypt (ACME) server"
}
},
"type" : "object"
},
"snowMonkeyConfig" : {
"description" : "Snowmonky settings",
"properties" : {
"dryRun" : {
"type" : "boolean",
"description" : "Whether or not outages will actualy impact requests"
},
"outageDurationTo" : {
"type" : "number",
"description" : "End of outage duration range"
},
"chaosConfig" : {
"description" : "Chaos settings",
"properties" : {
"badResponsesFaultConfig" : {
"description" : "Settings for bad responses",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"responses" : {
"type" : "array",
"items" : {
"properties" : {
"status" : {
"type" : "integer",
"format" : "int32",
"description" : "The HTTP status for the response"
},
"body" : {
"type" : "string",
"description" : "The body of the HTTP response"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "The HTTP headers of the response"
}
},
"type" : "object"
},
"description" : "The possibles responses"
}
}
},
"largeRequestFaultConfig" : {
"description" : "Settings for large requests",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"additionalRequestSize" : {
"type" : "integer",
"format" : "int32",
"description" : "The size added to the request body in bytes. Added payload will be spaces only."
}
}
},
"largeResponseFaultConfig" : {
"description" : "Settings for large responses",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"additionalResponseSize" : {
"type" : "integer",
"format" : "int32",
"description" : "Add n 0 bytes"
}
}
},
"latencyInjectionFaultConfig" : {
"description" : "Settings for latency injection",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"from" : {
"type" : "number",
"description" : "The start range of latency added to the request"
},
"to" : {
"type" : "number",
"description" : "The end range of latency added to the request"
}
}
},
"enabled" : {
"type" : "boolean",
"description" : "Whether or not this config is enabled"
}
},
"type" : "object"
},
"timesPerDay" : {
"type" : "integer",
"format" : "int32",
"description" : "Number of time per day each service will be outage"
},
"outageDurationFrom" : {
"type" : "number",
"description" : "Start of outage duration range"
},
"startTime" : {
"type" : "string",
"description" : "Start time of Snow Monkey each day"
},
"includeUserFacingDescriptors" : {
"type" : "boolean",
"description" : "Whether or not user facing apps. will be impacted by Snow Monkey"
},
"targetGroups" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Groups impacted by Snow Monkey. If empty, all groups will be impacted"
},
"enabled" : {
"type" : "boolean",
"description" : "Whether or not this config is enabled"
},
"stopTime" : {
"type" : "string",
"description" : "Stop time of Snow Monkey each day"
},
"outageStrategy" : {
"description" : "",
"type" : "string",
"enum" : [ "AllServicesPerGroup", "OneServicePerGroup" ]
}
},
"type" : "object"
},
"scripts" : {
"description" : "global plugins settings. will be deprecated soon",
"properties" : {
"jobConfig" : {
"type" : "object",
"description" : "jobs enabled"
},
"enabled" : {
"type" : "boolean",
"description" : "Global scripts enabled"
},
"transformersConfig" : {
"type" : "object",
"description" : "transformers config"
},
"transformersRefs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "transformers enabled"
},
"preRouteRefs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "pre-route plugins enabled"
},
"sinkConfig" : {
"type" : "object",
"description" : "sinks config"
},
"jobRefs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "running jobs"
},
"validatorRefs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "validator enabled"
},
"sinkRefs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "sinks enabled"
},
"preRouteConfig" : {
"type" : "object",
"description" : "pre-route config"
},
"validatorConfig" : {
"type" : "object",
"description" : "validator config"
}
},
"type" : "object"
},
"perIpThrottlingQuota" : {
"type" : "integer",
"format" : "int64",
"description" : "Authorized number of calls per second globally per IP address, measured on 10 seconds"
},
"useCircuitBreakers" : {
"type" : "boolean",
"description" : "If enabled, services will be authorized to use circuit breakers"
},
"maxHttp10ResponseSize" : {
"type" : "integer",
"format" : "int64",
"description" : "The max size in bytes of an HTTP 1.0 response"
},
"tlsSettings" : {
"description" : "TLS settings",
"properties" : {
"trustedCAsServer" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "List for CAs trusted by otoroshi when performing TLS termination"
},
"includeJdkCaClient" : {
"type" : "boolean",
"description" : "Use known JDK CAs to build trust when performing request from otoroshi to backends"
},
"randomIfNotFound" : {
"type" : "boolean",
"description" : "Use a random one"
},
"defaultDomain" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"includeJdkCaServer" : {
"type" : "boolean",
"description" : "Use known JDK CAs to build trust for incoming request"
}
},
"type" : "object"
},
"statsdConfig" : {
"description" : "Statsd settings (agent connection)",
"type" : "object",
"properties" : {
"datadog" : {
"type" : "boolean",
"description" : "Datadog agent"
},
"host" : {
"type" : "string",
"description" : "The host of the StatsD agent"
},
"port" : {
"type" : "integer",
"format" : "int32",
"description" : "The port of the StatsD agent"
}
}
},
"autoLinkToDefaultGroup" : {
"type" : "boolean",
"description" : "If not defined, every new service descriptor will be added to the default group"
},
"alertsWebhooks" : {
"type" : "array",
"items" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of exporter",
"enum" : [ "elastic", "webhook", "kafka", "pulsar", "file", "mailer", "custom", "console", "metrics" ]
},
"url" : {
"type" : "string",
"description" : "The URL where events are posted"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Headers to authorize the call or whatever"
},
"mtlsConfig" : {
"description" : "TLS config when calling webhook",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
}
},
"type" : "object"
},
"description" : "Webhook that will receive all Otoroshi alert events"
},
"ipFiltering" : {
"description" : "Global ip filtering settings",
"properties" : {
"whitelist" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"blacklist" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"u2fLoginOnly" : {
"type" : "boolean",
"description" : "If enabled, login to backoffice through Auth0 will be disabled"
},
"userAgentSettings" : {
"description" : "Settings for useragent extraction",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "User agent extraction enabled"
}
},
"type" : "object"
}
}
},
"otoroshi.greenscore.RuleId" : {
"type" : "object",
"description" : "???",
"properties" : {
"value" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.next.plugins.BuildMode" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"StringList" : {
"type" : "array",
"items" : {
"type" : "string"
}
},
"otoroshi.next.plugins.NgUserAgentExtractorConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"log" : {
"type" : "boolean",
"description" : "???"
}
}
},
"otoroshi.plugins.discovery.DiscoverySelfRegistrationSink" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.models.ExporterRef" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of exporter",
"enum" : [ "elastic", "webhook", "kafka", "pulsar", "file", "mailer", "custom", "console", "metrics" ]
},
"ref" : {
"type" : "string",
"description" : "???"
},
"config" : {
"type" : "object",
"description" : "???"
}
},
"type" : "object",
"description" : "???"
},
"otoroshi.next.plugins.NgMultiAuthModuleConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"modules" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"pass_with_apikey" : {
"type" : "boolean",
"description" : "???"
},
"use_email_prompt" : {
"type" : "boolean",
"description" : "???"
},
"users_groups" : {
"type" : "object",
"description" : "???"
}
}
},
"otoroshi.ssl.pki.models.GenKeyPairQuery" : {
"type" : "object",
"description" : "Settings for generating a keypair",
"properties" : {
"algo" : {
"type" : "string",
"description" : "Keypair algorithm"
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "Keypair size"
}
}
},
"otoroshi.next.plugins.NgRestrictionPath" : {
"type" : "object",
"description" : "???",
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.next.plugins.AccessValidatorContext" : {
"type" : "object",
"description" : "???",
"properties" : {
"ctx" : {
"description" : "???",
"properties" : { },
"type" : "object"
}
}
},
"otoroshi.next.plugins.NgFaultConfig" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"HealthCheckEventList" : {
"type" : "array",
"items" : {
"properties" : {
"error" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"health" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"logicCheck" : {
"type" : "boolean",
"description" : "???"
},
"status" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"url" : {
"type" : "string",
"description" : "???"
},
"duration" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
}
},
"type" : "object"
}
},
"otoroshi.next.plugins.FileUtils" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.NgHasClientCertMatchingHttpValidatorConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"tls" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "Enabled"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
},
"loose" : {
"type" : "boolean",
"description" : "Loose verification"
},
"trust_all" : {
"type" : "boolean",
"description" : "Trust any certificate"
},
"trusted_certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
}
},
"type" : "object"
},
"url" : {
"type" : "string",
"description" : "???"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.next.plugins.ReadOnlyCalls" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.NgAuthModuleExpectedUser" : {
"type" : "object",
"description" : "???",
"properties" : {
"only_from" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.next.plugins.WasmJobsLauncher" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.QueryTransformerConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"remove" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"rename" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.next.plugins.GraphQLBackend" : {
"type" : "object",
"description" : "???",
"properties" : {
"schema" : {
"type" : "string",
"description" : "???"
},
"permissions" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"initial_data" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"max_depth" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
}
},
"otoroshi.next.models.NgFrontend" : {
"type" : "object",
"description" : "Representation of how a request will be matched to a route",
"properties" : {
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "the headers that will be matched"
},
"query" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "the query params that will be matched"
},
"domains" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "The domain and path that will be matched"
},
"methods" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "the http methods that will be matched"
},
"exact" : {
"type" : "boolean",
"description" : "Match on exact path ?"
},
"strip_path" : {
"type" : "boolean",
"description" : "Is path stripped from backend request"
}
}
},
"otoroshi.next.plugins.WasmPreRoute" : {
"type" : "object",
"description" : "???",
"properties" : {
"allowedHosts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"memoryPages" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"allowedPaths" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"instances" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"config" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"authorizations" : {
"description" : "???",
"properties" : {
"proxyStateAccess" : {
"type" : "boolean",
"description" : "???"
},
"httpAccess" : {
"type" : "boolean",
"description" : "???"
},
"globalMapAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"pluginDataStoreAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"pluginMapAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"proxyHttpCallTimeout" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"configurationAccess" : {
"type" : "boolean",
"description" : "???"
},
"globalDataStoreAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
}
},
"type" : "object"
},
"opa" : {
"type" : "boolean",
"description" : "???"
},
"wasi" : {
"type" : "boolean",
"description" : "???"
},
"functionName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.models.OutageStrategy" : {
"type" : "string",
"enum" : [ "AllServicesPerGroup", "OneServicePerGroup" ]
},
"otoroshi.next.plugins.MockResponsesConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"responses" : {
"type" : "array",
"items" : {
"properties" : {
"path" : {
"type" : "string",
"description" : "???"
},
"body" : {
"type" : "string",
"description" : "???"
},
"status" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"method" : {
"type" : "string",
"description" : "???"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"pass_through" : {
"type" : "boolean",
"description" : "???"
},
"form_data" : {
"description" : "???",
"type" : "object",
"properties" : {
"resources" : {
"type" : "array",
"items" : {
"properties" : {
"name" : {
"type" : "string",
"description" : "???"
},
"schema" : {
"type" : "array",
"items" : {
"properties" : {
"field_name" : {
"type" : "string",
"description" : "???"
},
"field_type" : {
"type" : "string",
"description" : "???"
},
"value" : {
"type" : "object",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"additional_data" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"description" : "???"
},
"endpoints" : {
"type" : "array",
"items" : {
"properties" : {
"status" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"body" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"path" : {
"type" : "string",
"description" : "???"
},
"resource" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"headers" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"method" : {
"type" : "string",
"description" : "???"
},
"resource_list" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
}
}
}
}
},
"otoroshi.models.ClientIdAuthConstraints" : {
"type" : "object",
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"headerName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"queryName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.auth.BasicAuthUser" : {
"type" : "object",
"description" : "???",
"properties" : {
"metadata" : {
"type" : "object",
"description" : "???"
},
"password" : {
"type" : "string",
"description" : "???"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"email" : {
"type" : "string",
"description" : "???"
},
"webauthn" : {
"description" : "???",
"type" : "object",
"properties" : {
"handle" : {
"type" : "string",
"description" : "???"
},
"credentials" : {
"type" : "object",
"additionalProperties" : {
"type" : "object"
},
"description" : "???"
}
}
},
"rights" : {
"description" : "???",
"properties" : {
"rights" : {
"type" : "array",
"items" : {
"properties" : {
"tenant" : {
"description" : "Access rights on organizations",
"properties" : {
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
}
},
"type" : "object"
},
"teams" : {
"type" : "array",
"items" : {
"properties" : {
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
}
},
"type" : "object"
},
"description" : "Access rights on teams"
}
},
"type" : "object"
},
"description" : "Access rights of a user"
}
},
"type" : "object"
},
"name" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.models.ClientConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"connectionTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"useCircuitBreaker" : {
"type" : "boolean",
"description" : "???"
},
"retryInitialDelay" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"cacheConnectionSettings" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"queueSize" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
},
"type" : "object"
},
"proxy" : {
"description" : "???",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"callTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"callAndStreamTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"globalTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"maxErrors" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"retries" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"backoffFactor" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"customTimeouts" : {
"type" : "array",
"items" : {
"properties" : {
"path" : {
"type" : "string",
"description" : "???"
},
"callAndStreamTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"callTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"idleTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"globalTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"connectionTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"idleTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"sampleInterval" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
}
}
},
"otoroshi.next.plugins.WasmRouter" : {
"type" : "object",
"description" : "???",
"properties" : {
"allowedHosts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"memoryPages" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"allowedPaths" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"instances" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"config" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"authorizations" : {
"description" : "???",
"properties" : {
"proxyStateAccess" : {
"type" : "boolean",
"description" : "???"
},
"httpAccess" : {
"type" : "boolean",
"description" : "???"
},
"globalMapAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"pluginDataStoreAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"pluginMapAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"proxyHttpCallTimeout" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"configurationAccess" : {
"type" : "boolean",
"description" : "???"
},
"globalDataStoreAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
}
},
"type" : "object"
},
"opa" : {
"type" : "boolean",
"description" : "???"
},
"wasi" : {
"type" : "boolean",
"description" : "???"
},
"functionName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.next.plugins.NgBadResponse" : {
"type" : "object",
"description" : "???",
"properties" : {
"status" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"body" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgErrorRewriter" : {
"type" : "object",
"description" : "???",
"properties" : {
"ranges" : {
"type" : "array",
"items" : {
"properties" : {
"from" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"to" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"templates" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"log" : {
"type" : "boolean",
"description" : "???"
},
"export" : {
"type" : "boolean",
"description" : "???"
}
}
},
"otoroshi.plugins.useragent.UserAgentInfoEndpoint" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"LiveStats" : {
"type" : "object",
"description" : "Service live stats"
},
"otoroshi.models.ApiKeyConstraints" : {
"type" : "object",
"description" : "???",
"properties" : {
"customHeadersAuth" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"clientIdHeaderName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"clientSecretHeaderName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"routing" : {
"description" : "???",
"properties" : {
"oneTagIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"noneMetaKeysIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"oneMetaIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"oneMetaKeyIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allMetaKeysIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"noneTagIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allTagsIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allMetaIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"noneMetaIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"clientIdAuth" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"headerName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"queryName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"jwtAuth" : {
"description" : "???",
"properties" : {
"keyPairSigned" : {
"type" : "boolean",
"description" : "???"
},
"cookieName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"queryName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"headerName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"secretSigned" : {
"type" : "boolean",
"description" : "???"
},
"maxJwtLifespanSecs" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"includeRequestAttributes" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"basicAuth" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"headerName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"queryName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
}
}
},
"otoroshi.plugins.metrics.ServiceMetrics" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.plugins.core.apikeys.BasicAuthApikeyExtractor" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.plugins.izanami.IzanamiCanary" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.NgOtoroshiChallengeConfig" : {
"description" : "Configuration for OtoroshiChallenge",
"type" : "object",
"properties" : {
"version" : {
"description" : "Version of the challenge token",
"type" : "string",
"enum" : [ "V1", "v2" ]
},
"ttl" : {
"description" : "The ttl of the generated jwt in milliseconds",
"type" : "number"
},
"request_header_name" : {
"description" : "The header name to inject the jwt",
"type" : "string"
},
"response_header_name" : {
"description" : "The header name to read the jwt",
"type" : "string"
},
"algo_to_backend" : {
"description" : "The jwt signing algorithm when writing",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
},
"type" : "object"
},
"algo_from_backend" : {
"description" : "The jwt signing algorithm when reading",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
},
"type" : "object"
},
"state_resp_leeway" : {
"description" : "the number of seconds acceptable between client and server time",
"type" : "number"
}
}
},
"otoroshi.plugins.mirror.MirroringPlugin" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.NgTrafficMirroringConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"legacy" : {
"description" : "???",
"properties" : {
"conf" : {
"type" : "object",
"description" : "???"
}
},
"type" : "object"
}
}
},
"otoroshi.next.plugins.WasmException" : {
"type" : "object",
"description" : "???",
"properties" : {
"message" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgOtoroshiInfoConfig" : {
"description" : "Configuration for OtoroshiInfos",
"type" : "object",
"properties" : {
"version" : {
"description" : "Version of the info token",
"type" : "string",
"enum" : [ "Legacy", "Latest" ]
},
"secComTtl" : {
"description" : "The ttl of the generated jwt in milliseconds",
"type" : "number"
},
"headerName" : {
"description" : "The header name to inject the jwt",
"type" : "string"
},
"algo" : {
"description" : "The jwt signing algorithm",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
},
"type" : "object"
}
}
},
"otoroshi.utils.http.DN" : {
"type" : "string",
"description" : "A string representation of a Distinguished Name"
},
"otoroshi.next.plugins.NgDiscoveryTargetsSelector" : {
"type" : "object",
"description" : "???",
"properties" : {
"raw" : {
"type" : "object",
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgResponseCache" : {
"type" : "object",
"description" : "???",
"properties" : {
"ttl" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"max_size" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"auto_clean" : {
"type" : "boolean",
"description" : "???"
},
"filter" : {
"description" : "???",
"type" : "object",
"properties" : {
"paths" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"methods" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"not_methods" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"not_paths" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
}
}
},
"Any" : {
"type" : "object"
},
"otoroshi.ssl.ClientAuth" : {
"type" : "string",
"enum" : [ "Need", "None", "Want" ],
"description" : "Client authentication mode"
},
"otoroshi.models.SimpleOtoroshiAdmin" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of admin",
"enum" : [ "simple", "webauthn" ]
},
"username" : {
"type" : "string",
"description" : "User username"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Entity tags"
},
"label" : {
"type" : "string",
"description" : "User label"
},
"_loc" : {
"description" : "Entity location",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"typ" : {
"description" : "Admin kind",
"type" : "string",
"enum" : [ "SIMPLE", "WEBAUTHN" ]
},
"createdAt" : {
"type" : "number",
"description" : "User creation date"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Entity metadata"
},
"rights" : {
"description" : "User rights",
"properties" : {
"rights" : {
"type" : "array",
"items" : {
"properties" : {
"tenant" : {
"description" : "Access rights on organizations",
"properties" : {
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
}
},
"type" : "object"
},
"teams" : {
"type" : "array",
"items" : {
"properties" : {
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
}
},
"type" : "object"
},
"description" : "Access rights on teams"
}
},
"type" : "object"
},
"description" : "Access rights of a user"
}
},
"type" : "object"
},
"password" : {
"type" : "string",
"description" : "User password (bcrypt hashed)"
}
},
"type" : "object",
"description" : "An otoroshi admin user"
},
"otoroshi.models.EntityIdentifier" : {
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "description" ]
}, {
"required" : [ "type", "description" ]
} ],
"properties" : {
"type" : "string",
"description" : "the id of a group prefixed by 'group_'"
}
},
"otoroshi.next.plugins.ContextValidation" : {
"type" : "object",
"description" : "???",
"properties" : {
"validators" : {
"type" : "array",
"items" : {
"properties" : {
"path" : {
"type" : "string",
"description" : "???"
},
"value" : {
"type" : "object",
"description" : "???"
},
"error" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"description" : "???"
}
}
},
"otoroshi.next.plugins.TailscaleCertificatesFetcherJob" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.ResponseStatusRange" : {
"type" : "object",
"description" : "???",
"properties" : {
"from" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"to" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgIzanamiV1ProxyConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"features_enabled" : {
"type" : "boolean",
"description" : "???"
},
"client_secret" : {
"type" : "string",
"description" : "???"
},
"features_with_context_enabled" : {
"type" : "boolean",
"description" : "???"
},
"config_pattern" : {
"type" : "string",
"description" : "???"
},
"feature_pattern" : {
"type" : "string",
"description" : "???"
},
"client_id" : {
"type" : "string",
"description" : "???"
},
"tls" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "Enabled"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
},
"loose" : {
"type" : "boolean",
"description" : "Loose verification"
},
"trust_all" : {
"type" : "boolean",
"description" : "Trust any certificate"
},
"trusted_certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
}
},
"type" : "object"
},
"izanami_url" : {
"type" : "string",
"description" : "???"
},
"timeout" : {
"type" : "number",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
},
"auto_context" : {
"type" : "boolean",
"description" : "???"
},
"configuration_enabled" : {
"type" : "boolean",
"description" : "???"
}
}
},
"otoroshi.next.plugins.EurekaTargetConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"eureka_server" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"eureka_app" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.plugins.izanami.IzanamiCanaryRoutingConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"routes" : {
"type" : "array",
"items" : {
"properties" : {
"variants" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"wildcard" : {
"type" : "boolean",
"description" : "???"
},
"default" : {
"type" : "string",
"description" : "???"
},
"regex" : {
"type" : "boolean",
"description" : "???"
},
"exact" : {
"type" : "boolean",
"description" : "???"
},
"route" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgApikeyExtractorBasic" : {
"type" : "object",
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"header_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"query_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.next.plugins.NgRequestContext" : {
"type" : "object",
"description" : "???",
"properties" : {
"id" : {
"type" : "string",
"description" : "???"
},
"config" : {
"description" : "???",
"properties" : {
"legacy" : {
"description" : "???",
"properties" : {
"conf" : {
"type" : "object",
"description" : "???"
}
},
"type" : "object"
}
},
"type" : "object"
},
"route" : {
"description" : "???",
"properties" : {
"debug_flow" : {
"type" : "boolean",
"description" : "Enable report debugging"
},
"enabled" : {
"type" : "boolean",
"description" : "Is the route enabled"
},
"name" : {
"type" : "string",
"description" : "The name of the route"
},
"id" : {
"type" : "string",
"description" : "The ud of the route"
},
"export_reporting" : {
"type" : "boolean",
"description" : "Export the execution reporting through standard data exporter"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "The metadata of the route"
},
"frontend" : {
"description" : "The frontend of the route",
"properties" : {
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "the headers that will be matched"
},
"query" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "the query params that will be matched"
},
"domains" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "The domain and path that will be matched"
},
"methods" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "the http methods that will be matched"
},
"exact" : {
"type" : "boolean",
"description" : "Match on exact path ?"
},
"strip_path" : {
"type" : "boolean",
"description" : "Is path stripped from backend request"
}
},
"type" : "object"
},
"_loc" : {
"description" : "The location of the route",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "The tags of the route"
},
"capture" : {
"type" : "boolean",
"description" : "Capture http traffic"
},
"groups" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "The groups of the route"
},
"backend_ref" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"description" : {
"type" : "string",
"description" : "The description of the route"
},
"backend" : {
"description" : "The backend of the route",
"properties" : {
"root" : {
"type" : "string",
"description" : "The root path of the backend or the full rewrite path"
},
"health_check" : {
"description" : "???",
"type" : "object",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"url" : {
"type" : "string",
"description" : "???"
},
"timeout" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
}
},
"client" : {
"description" : "Client config. of the backend",
"properties" : {
"idle_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout on idle connection"
},
"sample_interval" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify the sliding window time for the circuit breaker in milliseconds, after this time, error count will be reseted"
},
"cache_connection_settings" : {
"description" : "Cached connection settings",
"properties" : {
"queue_size" : {
"type" : "integer",
"format" : "int32",
"description" : "How much request can be queue before dropping it"
},
"enabled" : {
"type" : "boolean",
"description" : "Is cached connection enabled"
}
},
"type" : "object"
},
"call_and_stream_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (hard timeout, connection will be closed after that duration)"
},
"custom_timeouts" : {
"type" : "array",
"items" : {
"properties" : {
"connection_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout at connection"
},
"call_and_stream_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (hard timeout, connection will be closed after that duration)"
},
"path" : {
"type" : "string",
"description" : "path on which this configuration works"
},
"call_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (soft timeout as it's enforced by the circuit breaker)"
},
"idle_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout on idle connection"
},
"global_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long the global call (with retries) should last at most in milliseconds"
}
},
"type" : "object"
},
"description" : "Custom timeouts per path"
},
"connection_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout at connection"
},
"call_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (soft timeout as it's enforced by the circuit breaker)"
},
"global_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long the global call (with retries) should last at most in milliseconds"
},
"retry_initial_delay" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify the delay between two retries. Each retry, the delay is multiplied by the backoff factor"
},
"backoff_factor" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify the factor to multiply the delay for each retry"
},
"proxy" : {
"description" : "Web proxy settings for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"retries" : {
"type" : "integer",
"format" : "int32",
"description" : "Specify how many times the client will try to fetch the result of the request after an error before giving up."
},
"max_errors" : {
"type" : "integer",
"format" : "int32",
"description" : "Specify how many errors can pass before opening the circuit breaker"
}
},
"type" : "object"
},
"load_balancing" : {
"description" : "Loadbalancing config og the backend",
"properties" : {
"type" : {
"type" : "string",
"enum" : [ "BestResponseTime", "IpAddressHash", "Random", "RoundRobin", "Sticky", "WeightedBestResponseTime" ]
},
"ratio" : {
"type" : "number",
"format" : "double"
}
},
"type" : "object"
},
"rewrite" : {
"type" : "boolean",
"description" : "Does the backend performs a full url rewrite ?"
},
"targets" : {
"type" : "array",
"items" : {
"properties" : {
"ip_address" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"protocol" : {
"type" : "string",
"enum" : [ "HTTP/1.0", "HTTP/1.1", "HTTP/2.0", "HTTP/3.0" ],
"description" : "Protocol for the target"
},
"predicate" : {
"description" : "Predicate to choose this target",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"dc" : {
"type" : "string",
"description" : "???"
},
"positions" : {
"type" : "array",
"items" : {
"properties" : {
"latitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"longitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"radius" : {
"type" : "number",
"format" : "double",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"provider" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataCenter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"rack" : {
"type" : "string",
"description" : "???"
},
"region" : {
"type" : "string",
"description" : "???"
},
"zone" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"tls_config" : {
"description" : "TLS settings to contact this target",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "Enabled"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
},
"loose" : {
"type" : "boolean",
"description" : "Loose verification"
},
"trust_all" : {
"type" : "boolean",
"description" : "Trust any certificate"
},
"trusted_certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
}
},
"type" : "object"
},
"tls" : {
"type" : "boolean",
"description" : "Does the target uses TLS"
},
"port" : {
"type" : "integer",
"format" : "int32",
"description" : "port of the target"
},
"id" : {
"type" : "string",
"description" : "id of the target"
},
"weight" : {
"type" : "integer",
"format" : "int32",
"description" : "The weight of the target when choosing"
},
"hostname" : {
"type" : "string",
"description" : "hostname of the target"
}
},
"type" : "object"
},
"description" : "The targets of the backend"
}
},
"type" : "object"
}
},
"type" : "object"
}
}
},
"otoroshi.ssl.pki.models.SignCertResponse" : {
"type" : "object",
"description" : "Response for a certificate signing operation",
"properties" : {
"cert" : {
"type" : "string",
"description" : "Cert (PEM encoded)"
},
"csr" : {
"type" : "string",
"description" : "CSR (PEM encoded)"
},
"ca" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.plugins.discovery.DiscoveryTargetsSelector" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.models.NgDomainAndPath" : {
"type" : "string",
"description" : "A string representing a domain and an optional path"
},
"otoroshi.next.plugins.JQ" : {
"type" : "object",
"description" : "???",
"properties" : {
"request" : {
"type" : "string",
"description" : "???"
},
"response" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.events.KafkaConfig" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of exporter",
"enum" : [ "elastic", "webhook", "kafka", "pulsar", "file", "mailer", "custom", "console", "metrics" ]
},
"sendEvents" : {
"type" : "boolean",
"description" : "Send events to it, or just connect"
},
"truststore" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"hostValidation" : {
"type" : "boolean",
"description" : "Enabled TLS hostname validation"
},
"servers" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "URLs of the kafka servers"
},
"mtlsConfig" : {
"description" : "TLS config to access the cluster",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"securityProtocol" : {
"type" : "string",
"description" : "Used security protocol"
},
"keystore" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"topic" : {
"type" : "string",
"description" : "Optional kafka topic (otoroshi-events by default)"
},
"keyPass" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"saslConfig" : {
"description" : "SASL configuration",
"type" : "object",
"properties" : {
"username" : {
"type" : "string",
"description" : "SASL username"
},
"password" : {
"type" : "string",
"description" : "SASL password"
},
"mechanism" : {
"type" : "string",
"description" : "SASL login mechanism"
}
}
}
},
"type" : "object",
"description" : "???"
},
"otoroshi.next.plugins.SnowMonkeyChaos" : {
"type" : "object",
"description" : "???",
"properties" : {
"large_request_fault_config" : {
"description" : "???",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"additional_request_size" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
}
},
"large_response_fault_config" : {
"description" : "???",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"additional_response_size" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
}
},
"latency_injection_fault_config" : {
"description" : "???",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"from" : {
"type" : "number",
"description" : "???"
},
"to" : {
"type" : "number",
"description" : "???"
}
}
},
"bad_responses_fault_config" : {
"description" : "???",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"responses" : {
"type" : "array",
"items" : {
"properties" : {
"status" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"body" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
}
}
}
}
},
"otoroshi.next.plugins.WasmJob" : {
"type" : "object",
"description" : "???",
"properties" : {
"config" : {
"description" : "???",
"properties" : {
"unique_id" : {
"type" : "string",
"description" : "???"
},
"instantiation" : {
"description" : "???",
"properties" : { },
"type" : "object"
},
"cron_expression" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"kind" : {
"description" : "???",
"properties" : { },
"type" : "object"
},
"config" : {
"description" : "???",
"properties" : {
"allowedHosts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"memoryPages" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"allowedPaths" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"instances" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"config" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"authorizations" : {
"description" : "???",
"properties" : {
"proxyStateAccess" : {
"type" : "boolean",
"description" : "???"
},
"httpAccess" : {
"type" : "boolean",
"description" : "???"
},
"globalMapAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"pluginDataStoreAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"pluginMapAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"proxyHttpCallTimeout" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"configurationAccess" : {
"type" : "boolean",
"description" : "???"
},
"globalDataStoreAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
}
},
"type" : "object"
},
"opa" : {
"type" : "boolean",
"description" : "???"
},
"wasi" : {
"type" : "boolean",
"description" : "???"
},
"functionName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"interval" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"initial_delay" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"raw_config" : {
"type" : "object",
"description" : "???"
}
},
"type" : "object"
}
}
},
"otoroshi.plugins.jobs.kubernetes.KubernetesIngressSyncJob" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.models.UserRights" : {
"type" : "object",
"description" : "Represent a list of user rights",
"properties" : {
"rights" : {
"type" : "array",
"items" : {
"properties" : {
"tenant" : {
"description" : "Access rights on organizations",
"properties" : {
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
}
},
"type" : "object"
},
"teams" : {
"type" : "array",
"items" : {
"properties" : {
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
}
},
"type" : "object"
},
"description" : "Access rights on teams"
}
},
"type" : "object"
},
"description" : "Access rights of a user"
}
}
},
"otoroshi.next.plugins.JsonTransformConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"filter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.plugins.biscuit.vavr_implicits" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.models.IndexSettingsInterval" : {
"type" : "object",
"description" : "Elasticseach indexation interval",
"properties" : { }
},
"otoroshi.plugins.jq.JqBodyTransformer" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.plugins.discovery.DiscoveryJobServiceId" : {
"type" : "object",
"description" : "???",
"properties" : {
"id" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgHeaderValuesConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgMaxMindGeolocationInfoExtractor" : {
"type" : "object",
"description" : "???",
"properties" : {
"path" : {
"type" : "string",
"description" : "???"
},
"log" : {
"type" : "boolean",
"description" : "???"
}
}
},
"otoroshi.next.plugins.wrappers.AccessValidatorWrapper" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.MaintenanceMode" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.plugins.jobs.kubernetes.KubernetesConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"endpoint" : {
"type" : "string",
"description" : "???"
},
"templates" : {
"type" : "object",
"description" : "???"
},
"token" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"restartDependantDeployments" : {
"type" : "boolean",
"description" : "???"
},
"watchGracePeriodSeconds" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"connectionTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"crds" : {
"type" : "boolean",
"description" : "???"
},
"watch" : {
"type" : "boolean",
"description" : "???"
},
"labels" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"openshiftDnsOperatorCoreDnsName" : {
"type" : "string",
"description" : "???"
},
"syncIntervalSeconds" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"kubeDnsOperatorCoreDnsName" : {
"type" : "string",
"description" : "???"
},
"defaultGroup" : {
"type" : "string",
"description" : "???"
},
"kubeDnsOperatorCoreDnsNamespace" : {
"type" : "string",
"description" : "???"
},
"triggerKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"otoroshiNamespace" : {
"type" : "string",
"description" : "???"
},
"watchTimeoutSeconds" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"openshiftDnsOperatorCleanupDomains" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"namespaces" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"openshiftDnsOperatorCoreDnsPort" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"coreDnsEnv" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"triggerPath" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"image" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"coreDnsConfigMapName" : {
"type" : "string",
"description" : "???"
},
"clusterDomain" : {
"type" : "string",
"description" : "???"
},
"idleTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"caCert" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"trust" : {
"type" : "boolean",
"description" : "???"
},
"ingressClasses" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"userPassword" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"syncDaikokuApikeysOnly" : {
"type" : "boolean",
"description" : "???"
},
"openshiftDnsOperatorCleanup" : {
"type" : "boolean",
"description" : "???"
},
"kubeSystemNamespace" : {
"type" : "string",
"description" : "???"
},
"ingressEndpointIp" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"namespacesLabels" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"openshiftDnsOperatorCleanupNames" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"kubeDnsOperatorCoreDnsPort" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"mutatingWebhookName" : {
"type" : "string",
"description" : "???"
},
"kubeLeader" : {
"type" : "boolean",
"description" : "???"
},
"ingressEndpointHostname" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"openshiftDnsOperatorIntegration" : {
"type" : "boolean",
"description" : "???"
},
"validatingWebhookName" : {
"type" : "string",
"description" : "???"
},
"coreDnsDeploymentName" : {
"type" : "string",
"description" : "???"
},
"ingresses" : {
"type" : "boolean",
"description" : "???"
},
"useProxyState" : {
"type" : "boolean",
"description" : "???"
},
"coreDnsIntegrationDryRun" : {
"type" : "boolean",
"description" : "???"
},
"ingressEndpointPublishedService" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"coreDnsAzure" : {
"type" : "boolean",
"description" : "???"
},
"corednsPort" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"coreDnsIntegration" : {
"type" : "boolean",
"description" : "???"
},
"otoroshiServiceName" : {
"type" : "string",
"description" : "???"
},
"meshDomain" : {
"type" : "string",
"description" : "???"
},
"kubeDnsOperatorIntegration" : {
"type" : "boolean",
"description" : "???"
},
"triggerHost" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"openshiftDnsOperatorCoreDnsNamespace" : {
"type" : "string",
"description" : "???"
},
"callAndStreamTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
}
}
},
"otoroshi.next.plugins.SubIss" : {
"type" : "object",
"description" : "???",
"properties" : {
"sn" : {
"type" : "string",
"description" : "???"
},
"subject" : {
"description" : "???",
"type" : "string"
},
"issuer" : {
"description" : "???",
"type" : "string"
}
}
},
"otoroshi.script.plugins.Plugins" : {
"type" : "object",
"description" : "Settings for plugins (of any kind)",
"properties" : {
"config" : {
"type" : "object",
"description" : "Plugins configuration"
},
"enabled" : {
"type" : "boolean",
"description" : "Plugins enabled"
},
"excluded" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Excluded paths"
},
"refs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Enabled plugins"
}
}
},
"otoroshi.plugins.cache.ResponseCacheFilterConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"json" : {
"type" : "object",
"description" : "???"
}
}
},
"otoroshi.next.models.NgMinimalBackend" : {
"type" : "object",
"description" : "A backend representation with it's minimal attributes",
"properties" : {
"root" : {
"type" : "string",
"description" : "The root path of the backend or the full rewrite path"
},
"targets" : {
"type" : "array",
"items" : {
"properties" : {
"ip_address" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"protocol" : {
"type" : "string",
"enum" : [ "HTTP/1.0", "HTTP/1.1", "HTTP/2.0", "HTTP/3.0" ],
"description" : "Protocol for the target"
},
"predicate" : {
"description" : "Predicate to choose this target",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"dc" : {
"type" : "string",
"description" : "???"
},
"positions" : {
"type" : "array",
"items" : {
"properties" : {
"latitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"longitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"radius" : {
"type" : "number",
"format" : "double",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"provider" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataCenter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"rack" : {
"type" : "string",
"description" : "???"
},
"region" : {
"type" : "string",
"description" : "???"
},
"zone" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"tls_config" : {
"description" : "TLS settings to contact this target",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "Enabled"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
},
"loose" : {
"type" : "boolean",
"description" : "Loose verification"
},
"trust_all" : {
"type" : "boolean",
"description" : "Trust any certificate"
},
"trusted_certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
}
},
"type" : "object"
},
"tls" : {
"type" : "boolean",
"description" : "Does the target uses TLS"
},
"port" : {
"type" : "integer",
"format" : "int32",
"description" : "port of the target"
},
"id" : {
"type" : "string",
"description" : "id of the target"
},
"weight" : {
"type" : "integer",
"format" : "int32",
"description" : "The weight of the target when choosing"
},
"hostname" : {
"type" : "string",
"description" : "hostname of the target"
}
},
"type" : "object"
},
"description" : "The targets of the backend"
},
"load_balancing" : {
"description" : "Loadbalancing config og the backend",
"properties" : {
"type" : {
"type" : "string",
"enum" : [ "BestResponseTime", "IpAddressHash", "Random", "RoundRobin", "Sticky", "WeightedBestResponseTime" ]
},
"ratio" : {
"type" : "number",
"format" : "double"
}
},
"type" : "object"
},
"rewrite" : {
"type" : "boolean",
"description" : "Does the backend performs a full url rewrite ?"
}
}
},
"otoroshi.next.plugins.OtoroshiHeadersIn" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.NgDeferPluginConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"duration" : {
"type" : "number",
"description" : "???"
}
}
},
"otoroshi.plugins.workflow.WorkflowJob" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.EurekaTarget" : {
"type" : "object",
"description" : "???",
"properties" : {
"eureka_server" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"eureka_app" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.plugins.apikeys.ClientCredentialService" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.DisableHttp10" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.plugins.loggers.RequestBodyEvent" : {
"type" : "object",
"description" : "???",
"properties" : {
"ua" : {
"type" : "string",
"description" : "???"
},
"reqId" : {
"type" : "string",
"description" : "???"
},
"url" : {
"type" : "string",
"description" : "???"
},
"from" : {
"type" : "string",
"description" : "???"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"method" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.next.plugins.StaticBackendConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"root_path" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.next.plugins.ExternalEurekaTarget" : {
"type" : "object",
"description" : "???",
"properties" : {
"eureka_server" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"eureka_app" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.auth.WebAuthnDetails" : {
"type" : "object",
"description" : "???",
"properties" : {
"handle" : {
"type" : "string",
"description" : "???"
},
"credentials" : {
"type" : "object",
"additionalProperties" : {
"type" : "object"
},
"description" : "???"
}
}
},
"otoroshi.tcp.TcpTarget" : {
"type" : "object",
"description" : "Target for a TCP proxy",
"properties" : {
"host" : {
"type" : "string",
"description" : "Target host"
},
"ip" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"port" : {
"type" : "integer",
"format" : "int32",
"description" : "Target port"
},
"tls" : {
"type" : "boolean",
"description" : "Use tls"
}
}
},
"otoroshi.next.plugins.WasmResponseTransformer" : {
"type" : "object",
"description" : "???",
"properties" : {
"allowedHosts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"memoryPages" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"allowedPaths" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"instances" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"config" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"authorizations" : {
"description" : "???",
"properties" : {
"proxyStateAccess" : {
"type" : "boolean",
"description" : "???"
},
"httpAccess" : {
"type" : "boolean",
"description" : "???"
},
"globalMapAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"pluginDataStoreAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"pluginMapAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"proxyHttpCallTimeout" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"configurationAccess" : {
"type" : "boolean",
"description" : "???"
},
"globalDataStoreAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
}
},
"type" : "object"
},
"opa" : {
"type" : "boolean",
"description" : "???"
},
"wasi" : {
"type" : "boolean",
"description" : "???"
},
"functionName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.next.plugins.NgIzanamiV1Canary" : {
"type" : "object",
"description" : "???",
"properties" : {
"client_id" : {
"type" : "string",
"description" : "???"
},
"experiment_id" : {
"type" : "string",
"description" : "???"
},
"route_config" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"tls" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "Enabled"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
},
"loose" : {
"type" : "boolean",
"description" : "Loose verification"
},
"trust_all" : {
"type" : "boolean",
"description" : "Trust any certificate"
},
"trusted_certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
}
},
"type" : "object"
},
"timeout" : {
"type" : "number",
"description" : "???"
},
"izanami_url" : {
"type" : "string",
"description" : "???"
},
"client_secret" : {
"type" : "string",
"description" : "???"
},
"config_id" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.script.JobInstantiation" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.models.GeoPositionRadius" : {
"type" : "object",
"description" : "???",
"properties" : {
"latitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"longitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"radius" : {
"type" : "number",
"format" : "double",
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgDefaultRequestBody" : {
"type" : "object",
"description" : "???",
"properties" : {
"content_type" : {
"type" : "string",
"description" : "???"
},
"content_encoding" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.next.plugins.NgHasClientCertMatchingHttpValidator" : {
"type" : "object",
"description" : "???",
"properties" : {
"subject_dns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"serial_numbers" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"issuer_dns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"regex_issuer_dns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"regex_subject_dns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.models.InCookie" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of location",
"enum" : [ "InQueryParam", "InHeader", "InCookie" ]
},
"name" : {
"type" : "string",
"description" : "Cookie name"
}
},
"type" : "object",
"description" : "JWT token location (cookie)"
},
"otoroshi.wasm.WasmAuthorizations" : {
"type" : "object",
"description" : "???",
"properties" : {
"proxyStateAccess" : {
"type" : "boolean",
"description" : "???"
},
"httpAccess" : {
"type" : "boolean",
"description" : "???"
},
"globalMapAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"pluginDataStoreAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"pluginMapAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"proxyHttpCallTimeout" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"configurationAccess" : {
"type" : "boolean",
"description" : "???"
},
"globalDataStoreAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
}
}
},
"otoroshi.plugins.oidc.OIDCHeaders" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.plugins.apikeys.ApiKeyAllowedOnThisServiceValidator" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.models.RSAlgoSettings" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object",
"description" : "Settings to use RSA signing algorithm"
},
"otoroshi.tcp.TcpService" : {
"type" : "object",
"description" : "Model for a TCP proxy",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "Service enabled"
},
"description" : {
"type" : "string",
"description" : "Entity description"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Entity metadata"
},
"port" : {
"type" : "integer",
"format" : "int32",
"description" : "network port"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Entity tags"
},
"rules" : {
"type" : "array",
"items" : {
"properties" : {
"domain" : {
"type" : "string",
"description" : "match on SNI domain"
},
"targets" : {
"type" : "array",
"items" : {
"properties" : {
"host" : {
"type" : "string",
"description" : "Target host"
},
"ip" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"port" : {
"type" : "integer",
"format" : "int32",
"description" : "Target port"
},
"tls" : {
"type" : "boolean",
"description" : "Use tls"
}
},
"type" : "object"
},
"description" : "TCP targets"
}
},
"type" : "object"
},
"description" : "Routing rules"
},
"clientAuth" : {
"description" : "Client authentication mode",
"type" : "string",
"enum" : [ "Need", "None", "Want" ]
},
"interface" : {
"type" : "string",
"description" : "Network interface"
},
"sni" : {
"description" : "SNI settings",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "SNI extraction enabled"
},
"forwardIfNoMatch" : {
"type" : "boolean",
"description" : ""
},
"forwardsTo" : {
"description" : "forwards call to",
"properties" : {
"host" : {
"type" : "string",
"description" : "Target host"
},
"ip" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"port" : {
"type" : "integer",
"format" : "int32",
"description" : "Target port"
},
"tls" : {
"type" : "boolean",
"description" : "Use tls"
}
},
"type" : "object"
}
},
"type" : "object"
},
"id" : {
"type" : "string",
"description" : "Entity id"
},
"_loc" : {
"description" : "Entity location",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"name" : {
"type" : "string",
"description" : "Entity name"
},
"tls" : {
"description" : "TLS mode",
"type" : "string",
"enum" : [ "Disabled", "Enabled", "PassThrough" ]
}
}
},
"otoroshi.next.plugins.TooComplexQueryError" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"WebAuthnRegistrationFinishBody" : {
"type" : "object",
"description" : ""
},
"otoroshi.models.LocalJwtVerifier" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of verifier",
"enum" : [ "global", "local", "ref" ]
},
"strict" : {
"type" : "boolean",
"description" : "???"
},
"source" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "name" ]
}, {
"required" : [ "type", "name", "remove" ]
}, {
"required" : [ "type", "name" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of location",
"enum" : [ "InQueryParam", "InHeader", "InCookie" ]
},
"name" : {
"type" : "string",
"description" : "Query param name"
},
"remove" : {
"type" : "string",
"description" : "Remove from value"
}
}
},
"algoSettings" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
},
"type" : "object"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"strategy" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "strict", "token", "verificationSettings" ]
}, {
"required" : [ "type", "verificationSettings" ]
}, {
"required" : [ "type", "verificationSettings", "algoSettings" ]
}, {
"required" : [ "type", "verificationSettings", "transformSettings", "algoSettings" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of strategy",
"enum" : [ "PassThrough", "Sign", "Transform", "DefaultToken" ]
},
"strict" : {
"type" : "boolean",
"description" : "If the token already exists in the request, then fail"
},
"token" : {
"type" : "object",
"description" : "The default token"
},
"verificationSettings" : {
"description" : "Verification settings",
"properties" : {
"fields" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Fields validation"
},
"arrayFields" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Fields array validation"
}
},
"type" : "object"
},
"algoSettings" : {
"description" : "Algorithm settings for re-signing token",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "size", "publicKey", "privateKey" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "secret", "base64" ]
}, {
"required" : [ "type", "url", "tlsConfig", "kty", "proxy", "headers", "ttl", "timeout" ]
}, {
"required" : [ "type", "onlyExposedCerts" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "publicKey", "privateKey" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
}
},
"transformSettings" : {
"description" : "Transformation settings",
"properties" : {
"location" : {
"description" : "Location of the token",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of location",
"enum" : [ "InQueryParam", "InHeader", "InCookie" ]
},
"name" : {
"type" : "string",
"description" : "Query param name"
},
"remove" : {
"type" : "string",
"description" : "Remove from value"
}
},
"type" : "object"
},
"mappingSettings" : {
"description" : "Token mapping settings",
"properties" : {
"map" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Change values"
},
"values" : {
"type" : "object",
"description" : "Add values"
},
"remove" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Remove some token claims"
}
},
"type" : "object"
}
},
"type" : "object"
}
}
}
},
"type" : "object",
"description" : "???"
},
"otoroshi.utils.gzip.GzipConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"compressionLevel" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"blackList" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"chunkedThreshold" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"bufferSize" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"whiteList" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
}
}
},
"otoroshi.plugins.useragent.UserAgentExtractor" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.models.Webhook" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of exporter",
"enum" : [ "elastic", "webhook", "kafka", "pulsar", "file", "mailer", "custom", "console", "metrics" ]
},
"url" : {
"type" : "string",
"description" : "The URL where events are posted"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Headers to authorize the call or whatever"
},
"mtlsConfig" : {
"description" : "TLS config when calling webhook",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
}
},
"type" : "object",
"description" : "Settings for webhook call"
},
"otoroshi.next.models.NgCustomTimeouts" : {
"type" : "object",
"description" : "Custom timeouts per path",
"properties" : {
"connection_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout at connection"
},
"call_and_stream_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (hard timeout, connection will be closed after that duration)"
},
"path" : {
"type" : "string",
"description" : "path on which this configuration works"
},
"call_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (soft timeout as it's enforced by the circuit breaker)"
},
"idle_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout on idle connection"
},
"global_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long the global call (with retries) should last at most in milliseconds"
}
}
},
"otoroshi.models.VerifierStrategy" : {
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "strict", "token", "verificationSettings" ]
}, {
"required" : [ "type", "verificationSettings" ]
}, {
"required" : [ "type", "verificationSettings", "algoSettings" ]
}, {
"required" : [ "type", "verificationSettings", "transformSettings", "algoSettings" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of strategy",
"enum" : [ "PassThrough", "Sign", "Transform", "DefaultToken" ]
},
"strict" : {
"type" : "boolean",
"description" : "If the token already exists in the request, then fail"
},
"token" : {
"type" : "object",
"description" : "The default token"
},
"verificationSettings" : {
"description" : "Verification settings",
"properties" : {
"fields" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Fields validation"
},
"arrayFields" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Fields array validation"
}
},
"type" : "object"
},
"algoSettings" : {
"description" : "Algorithm settings for re-signing token",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "size", "publicKey", "privateKey" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "secret", "base64" ]
}, {
"required" : [ "type", "url", "tlsConfig", "kty", "proxy", "headers", "ttl", "timeout" ]
}, {
"required" : [ "type", "onlyExposedCerts" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "publicKey", "privateKey" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
}
},
"transformSettings" : {
"description" : "Transformation settings",
"properties" : {
"location" : {
"description" : "Location of the token",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of location",
"enum" : [ "InQueryParam", "InHeader", "InCookie" ]
},
"name" : {
"type" : "string",
"description" : "Query param name"
},
"remove" : {
"type" : "string",
"description" : "Remove from value"
}
},
"type" : "object"
},
"mappingSettings" : {
"description" : "Token mapping settings",
"properties" : {
"map" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Change values"
},
"values" : {
"type" : "object",
"description" : "Add values"
},
"remove" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Remove some token claims"
}
},
"type" : "object"
}
},
"type" : "object"
}
}
},
"otoroshi.next.plugins.TcpTunnel" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.models.DefaultToken" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of strategy",
"enum" : [ "PassThrough", "Sign", "Transform", "DefaultToken" ]
},
"strict" : {
"type" : "boolean",
"description" : "If the token already exists in the request, then fail"
},
"token" : {
"type" : "object",
"description" : "The default token"
},
"verificationSettings" : {
"description" : "Verification settings",
"properties" : {
"fields" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Fields validation"
},
"arrayFields" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Fields array validation"
}
},
"type" : "object"
}
},
"type" : "object",
"description" : "Default jwt token when no other token validated"
},
"otoroshi.next.plugins.JwtVerifierUtils" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.HMACCaller" : {
"type" : "object",
"description" : "???",
"properties" : {
"secret" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"algo" : {
"type" : "string",
"description" : "???"
},
"authorization_header" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.next.plugins.NgHasClientCertValidator" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.models.RemainingQuotas" : {
"type" : "object",
"description" : "Remaining quotas for an apikey",
"properties" : {
"currentCallsPerSec" : {
"type" : "integer",
"format" : "int64",
"description" : "Current number of call per second"
},
"remainingCallsPerSec" : {
"type" : "integer",
"format" : "int64",
"description" : "Remaining number of call per second"
},
"currentCallsPerDay" : {
"type" : "integer",
"format" : "int64",
"description" : "Current number of call per day"
},
"authorizedCallsPerDay" : {
"type" : "integer",
"format" : "int64",
"description" : "Number of authorized call per day"
},
"currentCallsPerMonth" : {
"type" : "integer",
"format" : "int64",
"description" : "Current number of call per month"
},
"remainingCallsPerMonth" : {
"type" : "integer",
"format" : "int64",
"description" : "Remaining number of call per month"
},
"authorizedCallsPerSec" : {
"type" : "integer",
"format" : "int64",
"description" : "Number of authorized call per second"
},
"authorizedCallsPerMonth" : {
"type" : "integer",
"format" : "int64",
"description" : "Number of authorized call per month"
},
"remainingCallsPerDay" : {
"type" : "integer",
"format" : "int64",
"description" : "Remaining number of call per day"
}
}
},
"otoroshi.models.GlobalScripts" : {
"type" : "object",
"description" : "Settings to apply plugins globally",
"properties" : {
"jobConfig" : {
"type" : "object",
"description" : "jobs enabled"
},
"enabled" : {
"type" : "boolean",
"description" : "Global scripts enabled"
},
"transformersConfig" : {
"type" : "object",
"description" : "transformers config"
},
"transformersRefs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "transformers enabled"
},
"preRouteRefs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "pre-route plugins enabled"
},
"sinkConfig" : {
"type" : "object",
"description" : "sinks config"
},
"jobRefs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "running jobs"
},
"validatorRefs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "validator enabled"
},
"sinkRefs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "sinks enabled"
},
"preRouteConfig" : {
"type" : "object",
"description" : "pre-route config"
},
"validatorConfig" : {
"type" : "object",
"description" : "validator config"
}
}
},
"ErrorResponse" : {
"type" : "object",
"description" : "error response"
},
"otoroshi.plugins.cache.ResponseCacheConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"json" : {
"type" : "object",
"description" : "???"
}
}
},
"otoroshi.next.models.GraphQLFormats" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.plugins.biscuit.BiscuitValidator" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.models.JwtAuthConstraints" : {
"type" : "object",
"description" : "???",
"properties" : {
"keyPairSigned" : {
"type" : "boolean",
"description" : "???"
},
"cookieName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"queryName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"headerName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"secretSigned" : {
"type" : "boolean",
"description" : "???"
},
"maxJwtLifespanSecs" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"includeRequestAttributes" : {
"type" : "boolean",
"description" : "???"
}
}
},
"otoroshi.plugins.apikeys.ClientCredentialFlowExtractor" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.plugins.log4j.Log4ShellFilter" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.OIDCProfileHeader" : {
"type" : "object",
"description" : "???",
"properties" : {
"send" : {
"type" : "boolean",
"description" : "???"
},
"header_name" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.next.models.StoredNgBackend" : {
"type" : "object",
"description" : "A backend that can be stored in the otoroshi datastore",
"properties" : {
"description" : {
"type" : "string",
"description" : "The description of the backend"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "The tags of the backend"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "The metadata of the backend"
},
"backend" : {
"description" : "The actual backend",
"properties" : {
"root" : {
"type" : "string",
"description" : "The root path of the backend or the full rewrite path"
},
"health_check" : {
"description" : "???",
"type" : "object",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"url" : {
"type" : "string",
"description" : "???"
},
"timeout" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
}
},
"client" : {
"description" : "Client config. of the backend",
"properties" : {
"idle_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout on idle connection"
},
"sample_interval" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify the sliding window time for the circuit breaker in milliseconds, after this time, error count will be reseted"
},
"cache_connection_settings" : {
"description" : "Cached connection settings",
"properties" : {
"queue_size" : {
"type" : "integer",
"format" : "int32",
"description" : "How much request can be queue before dropping it"
},
"enabled" : {
"type" : "boolean",
"description" : "Is cached connection enabled"
}
},
"type" : "object"
},
"call_and_stream_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (hard timeout, connection will be closed after that duration)"
},
"custom_timeouts" : {
"type" : "array",
"items" : {
"properties" : {
"connection_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout at connection"
},
"call_and_stream_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (hard timeout, connection will be closed after that duration)"
},
"path" : {
"type" : "string",
"description" : "path on which this configuration works"
},
"call_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (soft timeout as it's enforced by the circuit breaker)"
},
"idle_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout on idle connection"
},
"global_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long the global call (with retries) should last at most in milliseconds"
}
},
"type" : "object"
},
"description" : "Custom timeouts per path"
},
"connection_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout at connection"
},
"call_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (soft timeout as it's enforced by the circuit breaker)"
},
"global_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long the global call (with retries) should last at most in milliseconds"
},
"retry_initial_delay" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify the delay between two retries. Each retry, the delay is multiplied by the backoff factor"
},
"backoff_factor" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify the factor to multiply the delay for each retry"
},
"proxy" : {
"description" : "Web proxy settings for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"retries" : {
"type" : "integer",
"format" : "int32",
"description" : "Specify how many times the client will try to fetch the result of the request after an error before giving up."
},
"max_errors" : {
"type" : "integer",
"format" : "int32",
"description" : "Specify how many errors can pass before opening the circuit breaker"
}
},
"type" : "object"
},
"load_balancing" : {
"description" : "Loadbalancing config og the backend",
"properties" : {
"type" : {
"type" : "string",
"enum" : [ "BestResponseTime", "IpAddressHash", "Random", "RoundRobin", "Sticky", "WeightedBestResponseTime" ]
},
"ratio" : {
"type" : "number",
"format" : "double"
}
},
"type" : "object"
},
"rewrite" : {
"type" : "boolean",
"description" : "Does the backend performs a full url rewrite ?"
},
"targets" : {
"type" : "array",
"items" : {
"properties" : {
"ip_address" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"protocol" : {
"type" : "string",
"enum" : [ "HTTP/1.0", "HTTP/1.1", "HTTP/2.0", "HTTP/3.0" ],
"description" : "Protocol for the target"
},
"predicate" : {
"description" : "Predicate to choose this target",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"dc" : {
"type" : "string",
"description" : "???"
},
"positions" : {
"type" : "array",
"items" : {
"properties" : {
"latitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"longitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"radius" : {
"type" : "number",
"format" : "double",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"provider" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataCenter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"rack" : {
"type" : "string",
"description" : "???"
},
"region" : {
"type" : "string",
"description" : "???"
},
"zone" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"tls_config" : {
"description" : "TLS settings to contact this target",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "Enabled"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
},
"loose" : {
"type" : "boolean",
"description" : "Loose verification"
},
"trust_all" : {
"type" : "boolean",
"description" : "Trust any certificate"
},
"trusted_certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
}
},
"type" : "object"
},
"tls" : {
"type" : "boolean",
"description" : "Does the target uses TLS"
},
"port" : {
"type" : "integer",
"format" : "int32",
"description" : "port of the target"
},
"id" : {
"type" : "string",
"description" : "id of the target"
},
"weight" : {
"type" : "integer",
"format" : "int32",
"description" : "The weight of the target when choosing"
},
"hostname" : {
"type" : "string",
"description" : "hostname of the target"
}
},
"type" : "object"
},
"description" : "The targets of the backend"
}
},
"type" : "object"
},
"name" : {
"type" : "string",
"description" : "The name of the backend"
},
"_loc" : {
"description" : "The location of the backend",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"id" : {
"type" : "string",
"description" : "The id of the backend"
}
}
},
"Empty" : {
"type" : "object",
"description" : "an empty body. Useful for RPC like endpoints"
},
"otoroshi.models.ServiceGroupIdentifier" : {
"type" : "string",
"description" : "the id of a group prefixed by 'group_'"
},
"otoroshi.script.AccessValidatorRef" : {
"type" : "object",
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"refs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"config" : {
"type" : "object",
"description" : "???"
}
}
},
"otoroshi.ssl.pki.models.GenCertResponse" : {
"type" : "object",
"description" : "Response for a certificate generation operation",
"properties" : {
"ca" : {
"type" : "string",
"description" : "Ca cert (PEM encoded)"
},
"caChain" : {
"type" : "array",
"items" : {
"type" : "string",
"description" : "pem encoded X509 certificate"
},
"description" : "Ca chain (PEM encoded)"
},
"csrQuery" : {
"description" : "JSON generation query",
"type" : "object",
"properties" : {
"client" : {
"type" : "boolean",
"description" : "Is cert client ?"
},
"hosts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Certificate SANs"
},
"key" : {
"description" : "Keypair specs",
"properties" : {
"algo" : {
"type" : "string",
"description" : "Keypair algorithm"
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "Keypair size"
}
},
"type" : "object"
},
"includeAIA" : {
"type" : "boolean",
"description" : "Include AIA extension (if generated from otoroshi CA)"
},
"signatureAlg" : {
"type" : "string",
"description" : "Signature algorithm"
},
"existingSerialNumber" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"duration" : {
"type" : "number",
"description" : "Certificate lifespan"
},
"digestAlg" : {
"type" : "string",
"description" : "Digest algo"
},
"ca" : {
"type" : "boolean",
"description" : "Is cert ca ?"
},
"name" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Certificate name"
},
"subject" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"cert" : {
"type" : "string",
"description" : "Cert (PEM encoded)"
},
"serial" : {
"type" : "integer",
"format" : "int64",
"description" : "Certificate serial number"
},
"key" : {
"type" : "string",
"description" : "Private key (PEM encoded)"
},
"csr" : {
"type" : "string",
"description" : "CSR (PEM encoded)"
}
}
},
"otoroshi.next.plugins.NgHttpClientCacheConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"max_age_seconds" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"methods" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"mime_types" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.next.models.NgPluginInstanceConfig" : {
"description" : "The current configuration for a plugin",
"type" : "object"
},
"otoroshi.models.PrivateAppsUser" : {
"type" : "object",
"description" : "User session for private apps",
"properties" : {
"realm" : {
"type" : "string",
"description" : "Session realm name"
},
"token" : {
"type" : "object",
"description" : "Session tokens (from OAuth)"
},
"expiredAt" : {
"type" : "number",
"description" : "Session expiration date"
},
"profile" : {
"type" : "object",
"description" : "Session user profile"
},
"lastRefresh" : {
"type" : "number",
"description" : "Session last refresh (if OAuth refresh_token supported)"
},
"randomId" : {
"type" : "string",
"description" : "Session random id"
},
"email" : {
"type" : "string",
"description" : "Session user email"
},
"createdAt" : {
"type" : "number",
"description" : "Creation date of the session"
},
"_loc" : {
"description" : "Entity location",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"authConfigId" : {
"type" : "string",
"description" : "Auth module id that created the session"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Entity tags"
},
"name" : {
"type" : "string",
"description" : "Entity name"
},
"otoroshiData" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Entity metadata"
}
}
},
"otoroshi.plugins.geoloc.GeolocationInfoEndpoint" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.models.NgTreeNodePath" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.QueryTransformer" : {
"type" : "object",
"description" : "???",
"properties" : {
"remove" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"rename" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.next.plugins.TailscaleSelectTargetByName" : {
"type" : "object",
"description" : "???",
"properties" : {
"machine_name" : {
"type" : "string",
"description" : "???"
},
"use_ip_address" : {
"type" : "boolean",
"description" : "???"
}
}
},
"HostMetrics" : {
"type" : "object",
"description" : "Host metrics"
},
"AlertEventList" : {
"type" : "array",
"items" : {
"properties" : {
"type" : "object",
"description" : "Alert trail event"
},
"type" : "object"
}
},
"otoroshi.models.HealthCheck" : {
"type" : "object",
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"url" : {
"type" : "string",
"description" : "???"
},
"timeout" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
}
},
"otoroshi.plugins.core.apikeys.ClientIdApikeyExtractor" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.StaticResponseConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"status" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"body" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.next.plugins.WasmOPA" : {
"type" : "object",
"description" : "???",
"properties" : {
"allowedHosts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"memoryPages" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"allowedPaths" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"instances" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"config" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"authorizations" : {
"description" : "???",
"properties" : {
"proxyStateAccess" : {
"type" : "boolean",
"description" : "???"
},
"httpAccess" : {
"type" : "boolean",
"description" : "???"
},
"globalMapAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"pluginDataStoreAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"pluginMapAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"proxyHttpCallTimeout" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"configurationAccess" : {
"type" : "boolean",
"description" : "???"
},
"globalDataStoreAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
}
},
"type" : "object"
},
"opa" : {
"type" : "boolean",
"description" : "???"
},
"wasi" : {
"type" : "boolean",
"description" : "???"
},
"functionName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.plugins.useragent.UserAgentInfoHeader" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.HeadersValidation" : {
"type" : "object",
"description" : "???",
"properties" : {
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgSecurityTxt" : {
"type" : "object",
"description" : "???",
"properties" : {
"preferred_languages" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"encryption" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"policy" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"acknowledgments" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"hiring" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"contact" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.models.SnowMonkeyConfig" : {
"type" : "object",
"description" : "Settings for the snow monkey (chaos engineering)",
"properties" : {
"dryRun" : {
"type" : "boolean",
"description" : "Whether or not outages will actualy impact requests"
},
"outageDurationTo" : {
"type" : "number",
"description" : "End of outage duration range"
},
"chaosConfig" : {
"description" : "Chaos settings",
"properties" : {
"badResponsesFaultConfig" : {
"description" : "Settings for bad responses",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"responses" : {
"type" : "array",
"items" : {
"properties" : {
"status" : {
"type" : "integer",
"format" : "int32",
"description" : "The HTTP status for the response"
},
"body" : {
"type" : "string",
"description" : "The body of the HTTP response"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "The HTTP headers of the response"
}
},
"type" : "object"
},
"description" : "The possibles responses"
}
}
},
"largeRequestFaultConfig" : {
"description" : "Settings for large requests",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"additionalRequestSize" : {
"type" : "integer",
"format" : "int32",
"description" : "The size added to the request body in bytes. Added payload will be spaces only."
}
}
},
"largeResponseFaultConfig" : {
"description" : "Settings for large responses",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"additionalResponseSize" : {
"type" : "integer",
"format" : "int32",
"description" : "Add n 0 bytes"
}
}
},
"latencyInjectionFaultConfig" : {
"description" : "Settings for latency injection",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"from" : {
"type" : "number",
"description" : "The start range of latency added to the request"
},
"to" : {
"type" : "number",
"description" : "The end range of latency added to the request"
}
}
},
"enabled" : {
"type" : "boolean",
"description" : "Whether or not this config is enabled"
}
},
"type" : "object"
},
"timesPerDay" : {
"type" : "integer",
"format" : "int32",
"description" : "Number of time per day each service will be outage"
},
"outageDurationFrom" : {
"type" : "number",
"description" : "Start of outage duration range"
},
"startTime" : {
"type" : "string",
"description" : "Start time of Snow Monkey each day"
},
"includeUserFacingDescriptors" : {
"type" : "boolean",
"description" : "Whether or not user facing apps. will be impacted by Snow Monkey"
},
"targetGroups" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Groups impacted by Snow Monkey. If empty, all groups will be impacted"
},
"enabled" : {
"type" : "boolean",
"description" : "Whether or not this config is enabled"
},
"stopTime" : {
"type" : "string",
"description" : "Stop time of Snow Monkey each day"
},
"outageStrategy" : {
"description" : "",
"type" : "string",
"enum" : [ "AllServicesPerGroup", "OneServicePerGroup" ]
}
}
},
"otoroshi.models.IndexSettings" : {
"type" : "object",
"description" : "Elasticseach indexation settings",
"properties" : {
"clientSide" : {
"type" : "boolean",
"description" : "Enable index splitting on client side"
},
"numberOfShards" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"numberOfReplicas" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"interval" : {
"description" : "Index splitting interval",
"properties" : { },
"type" : "object"
}
}
},
"otoroshi.auth.NameIDFormat" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.GraphQLQuery" : {
"type" : "object",
"description" : "???",
"properties" : {
"response_path" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"url" : {
"type" : "string",
"description" : "???"
},
"response_filter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"query" : {
"type" : "string",
"description" : "???"
},
"method" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.models.ZoneMatch" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"zone" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object",
"description" : "???"
},
"otoroshi.next.models.NgPlugins" : {
"type" : "object",
"description" : "???",
"properties" : {
"slots" : {
"type" : "array",
"items" : {
"properties" : {
"instance_id" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"debug" : {
"type" : "boolean",
"description" : "???"
},
"config" : {
"type" : "object",
"description" : "???"
},
"exclude" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"plugin_index" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ ],
"properties" : { }
},
"include" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"plugin" : {
"type" : "string",
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
}
}
},
"otoroshi.next.plugins.ForwardedHeader" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.plugins.jobs.kubernetes.KubernetesOtoroshiCRDsControllerJob" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.auth.GroupFilter" : {
"type" : "object",
"description" : "???",
"properties" : {
"group" : {
"type" : "string",
"description" : "???"
},
"tenant" : {
"description" : "???",
"properties" : {
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
}
},
"type" : "object"
},
"team" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.plugins.mirror.RequestContext" : {
"type" : "object",
"description" : "???",
"properties" : {
"descriptor" : {
"description" : "???",
"properties" : {
"buildMode" : {
"type" : "boolean",
"description" : "???"
},
"hosts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"privateApp" : {
"type" : "boolean",
"description" : "???"
},
"localScheme" : {
"type" : "string",
"description" : "???"
},
"authConfigRef" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"issueCertCA" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"root" : {
"type" : "string",
"description" : "???"
},
"name" : {
"type" : "string",
"description" : "???"
},
"additionalHeaders" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"domain" : {
"type" : "string",
"description" : "???"
},
"clientConfig" : {
"description" : "???",
"properties" : {
"connectionTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"useCircuitBreaker" : {
"type" : "boolean",
"description" : "???"
},
"retryInitialDelay" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"cacheConnectionSettings" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"queueSize" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
},
"type" : "object"
},
"proxy" : {
"description" : "???",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"callTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"callAndStreamTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"globalTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"maxErrors" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"retries" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"backoffFactor" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"customTimeouts" : {
"type" : "array",
"items" : {
"properties" : {
"path" : {
"type" : "string",
"description" : "???"
},
"callAndStreamTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"callTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"idleTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"globalTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"connectionTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"idleTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"sampleInterval" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
}
},
"type" : "object"
},
"matchingRoot" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"forceHttps" : {
"type" : "boolean",
"description" : "???"
},
"localHost" : {
"type" : "string",
"description" : "???"
},
"sendOtoroshiHeadersBack" : {
"type" : "boolean",
"description" : "???"
},
"healthCheck" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"url" : {
"type" : "string",
"description" : "???"
},
"timeout" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
},
"type" : "object"
},
"strictlyPrivate" : {
"type" : "boolean",
"description" : "???"
},
"detectApiKeySooner" : {
"type" : "boolean",
"description" : "???"
},
"allowHttp10" : {
"type" : "boolean",
"description" : "???"
},
"subdomain" : {
"type" : "string",
"description" : "???"
},
"paths" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"stripPath" : {
"type" : "boolean",
"description" : "???"
},
"secComAlgoChallengeOtoToBack" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "size", "publicKey", "privateKey" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "secret", "base64" ]
}, {
"required" : [ "type", "url", "tlsConfig", "kty", "proxy", "headers", "ttl", "timeout" ]
}, {
"required" : [ "type", "onlyExposedCerts" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "publicKey", "privateKey" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
}
},
"apiKeyConstraints" : {
"description" : "???",
"properties" : {
"customHeadersAuth" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"clientIdHeaderName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"clientSecretHeaderName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"routing" : {
"description" : "???",
"properties" : {
"oneTagIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"noneMetaKeysIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"oneMetaIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"oneMetaKeyIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allMetaKeysIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"noneTagIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allTagsIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allMetaIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"noneMetaIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"clientIdAuth" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"headerName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"queryName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"jwtAuth" : {
"description" : "???",
"properties" : {
"keyPairSigned" : {
"type" : "boolean",
"description" : "???"
},
"cookieName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"queryName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"headerName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"secretSigned" : {
"type" : "boolean",
"description" : "???"
},
"maxJwtLifespanSecs" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"includeRequestAttributes" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"basicAuth" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"headerName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"queryName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
}
},
"type" : "object"
},
"env" : {
"type" : "string",
"description" : "???"
},
"xForwardedHeaders" : {
"type" : "boolean",
"description" : "???"
},
"transformerRefs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"gzip" : {
"description" : "???",
"properties" : {
"compressionLevel" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"blackList" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"chunkedThreshold" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"bufferSize" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"whiteList" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"sendInfoToken" : {
"type" : "boolean",
"description" : "???"
},
"tcpUdpTunneling" : {
"type" : "boolean",
"description" : "???"
},
"removeHeadersOut" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"useAkkaHttpClient" : {
"type" : "boolean",
"description" : "???"
},
"maintenanceMode" : {
"type" : "boolean",
"description" : "???"
},
"id" : {
"type" : "string",
"description" : "???"
},
"removeHeadersIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"logAnalyticsOnServer" : {
"type" : "boolean",
"description" : "???"
},
"secComAlgoInfoToken" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "size", "publicKey", "privateKey" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "secret", "base64" ]
}, {
"required" : [ "type", "url", "tlsConfig", "kty", "proxy", "headers", "ttl", "timeout" ]
}, {
"required" : [ "type", "onlyExposedCerts" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "publicKey", "privateKey" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
}
},
"userFacing" : {
"type" : "boolean",
"description" : "???"
},
"transformerConfig" : {
"type" : "object",
"description" : "???"
},
"clientValidatorRef" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"securityExcludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"ipFiltering" : {
"description" : "???",
"properties" : {
"whitelist" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"blacklist" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"targets" : {
"type" : "array",
"items" : {
"properties" : {
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"host" : {
"type" : "string",
"description" : "???"
},
"weight" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"protocol" : {
"type" : "string",
"enum" : [ "HTTP/1.0", "HTTP/1.1", "HTTP/2.0", "HTTP/3.0" ],
"description" : "???"
},
"predicate" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"dc" : {
"type" : "string",
"description" : "???"
},
"positions" : {
"type" : "array",
"items" : {
"properties" : {
"latitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"longitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"radius" : {
"type" : "number",
"format" : "double",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"provider" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataCenter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"rack" : {
"type" : "string",
"description" : "???"
},
"region" : {
"type" : "string",
"description" : "???"
},
"zone" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"ipAddress" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"mtlsConfig" : {
"description" : "???",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"scheme" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"redirection" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"code" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"to" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"restrictions" : {
"description" : "???",
"properties" : {
"forbidden" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"allowed" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"notFound" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"allowLast" : {
"type" : "boolean",
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"overrideHost" : {
"type" : "boolean",
"description" : "???"
},
"accessValidator" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"refs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"config" : {
"type" : "object",
"description" : "???"
}
},
"type" : "object"
},
"sendStateChallenge" : {
"type" : "boolean",
"description" : "???"
},
"chaosConfig" : {
"description" : "???",
"properties" : {
"badResponsesFaultConfig" : {
"description" : "Settings for bad responses",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"responses" : {
"type" : "array",
"items" : {
"properties" : {
"status" : {
"type" : "integer",
"format" : "int32",
"description" : "The HTTP status for the response"
},
"body" : {
"type" : "string",
"description" : "The body of the HTTP response"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "The HTTP headers of the response"
}
},
"type" : "object"
},
"description" : "The possibles responses"
}
}
},
"largeRequestFaultConfig" : {
"description" : "Settings for large requests",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"additionalRequestSize" : {
"type" : "integer",
"format" : "int32",
"description" : "The size added to the request body in bytes. Added payload will be spaces only."
}
}
},
"largeResponseFaultConfig" : {
"description" : "Settings for large responses",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"additionalResponseSize" : {
"type" : "integer",
"format" : "int32",
"description" : "Add n 0 bytes"
}
}
},
"latencyInjectionFaultConfig" : {
"description" : "Settings for latency injection",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"from" : {
"type" : "number",
"description" : "The start range of latency added to the request"
},
"to" : {
"type" : "number",
"description" : "The end range of latency added to the request"
}
}
},
"enabled" : {
"type" : "boolean",
"description" : "Whether or not this config is enabled"
}
},
"type" : "object"
},
"secComInfoTokenVersion" : {
"description" : "Version of the info token",
"type" : "string",
"enum" : [ "Legacy", "Latest" ]
},
"additionalHeadersOut" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"secComHeaders" : {
"description" : "???",
"properties" : {
"claimRequestName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"stateRequestName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"stateResponseName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"matchingHeaders" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"secComAlgoChallengeBackToOto" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "size", "publicKey", "privateKey" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "secret", "base64" ]
}, {
"required" : [ "type", "url", "tlsConfig", "kty", "proxy", "headers", "ttl", "timeout" ]
}, {
"required" : [ "type", "onlyExposedCerts" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "publicKey", "privateKey" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
}
},
"secComUseSameAlgo" : {
"type" : "boolean",
"description" : "???"
},
"useNewWSClient" : {
"type" : "boolean",
"description" : "???"
},
"secComExcludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"redirectToLocal" : {
"type" : "boolean",
"description" : "???"
},
"enforceSecureCommunication" : {
"type" : "boolean",
"description" : "???"
},
"missingOnlyHeadersOut" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"secComSettings" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "size", "publicKey", "privateKey" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "secret", "base64" ]
}, {
"required" : [ "type", "url", "tlsConfig", "kty", "proxy", "headers", "ttl", "timeout" ]
}, {
"required" : [ "type", "onlyExposedCerts" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "publicKey", "privateKey" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
}
},
"handleLegacyDomain" : {
"type" : "boolean",
"description" : "???"
},
"canary" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"traffic" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"targets" : {
"type" : "array",
"items" : {
"properties" : {
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"host" : {
"type" : "string",
"description" : "???"
},
"weight" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"protocol" : {
"type" : "string",
"enum" : [ "HTTP/1.0", "HTTP/1.1", "HTTP/2.0", "HTTP/3.0" ],
"description" : "???"
},
"predicate" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"dc" : {
"type" : "string",
"description" : "???"
},
"positions" : {
"type" : "array",
"items" : {
"properties" : {
"latitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"longitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"radius" : {
"type" : "number",
"format" : "double",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"provider" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataCenter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"rack" : {
"type" : "string",
"description" : "???"
},
"region" : {
"type" : "string",
"description" : "???"
},
"zone" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"ipAddress" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"mtlsConfig" : {
"description" : "???",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"scheme" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"root" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"_loc" : {
"description" : "???",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"plugins" : {
"description" : "???",
"properties" : {
"config" : {
"type" : "object",
"description" : "Plugins configuration"
},
"enabled" : {
"type" : "boolean",
"description" : "Plugins enabled"
},
"excluded" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Excluded paths"
},
"refs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Enabled plugins"
}
},
"type" : "object"
},
"secComTtl" : {
"type" : "number",
"description" : "???"
},
"description" : {
"type" : "string",
"description" : "???"
},
"secComVersion" : {
"description" : "Version of the challenge token",
"type" : "string",
"enum" : [ "V1", "v2" ]
},
"preRouting" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"refs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"config" : {
"type" : "object",
"description" : "???"
}
},
"type" : "object"
},
"groups" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"readOnly" : {
"type" : "boolean",
"description" : "???"
},
"privatePatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"targetsLoadBalancing" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"enum" : [ "BestResponseTime", "IpAddressHash", "Random", "RoundRobin", "Sticky", "WeightedBestResponseTime" ]
},
"ratio" : {
"type" : "number",
"format" : "double"
}
},
"type" : "object"
},
"cors" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"allowCredentials" : {
"type" : "boolean",
"description" : "???"
},
"maxAge" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"allowMethods" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allowHeaders" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"exposeHeaders" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allowOrigin" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"publicPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"api" : {
"description" : "???",
"properties" : {
"exposeApi" : {
"type" : "boolean",
"description" : "???"
},
"openApiDescriptorUrl" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"missingOnlyHeadersIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"issueCert" : {
"type" : "boolean",
"description" : "???"
},
"headersVerification" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"jwtVerifier" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "desc", "name", "strict", "source", "algoSettings", "tags", "id", "_loc", "strategy", "metadata" ]
}, {
"required" : [ "type", "strict", "source", "algoSettings", "enabled", "excludedPatterns", "strategy" ]
}, {
"required" : [ "type", "excludedPatterns", "enabled", "ids" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of verifier",
"enum" : [ "global", "local", "ref" ]
},
"desc" : {
"type" : "string",
"description" : "Verifier description"
},
"name" : {
"type" : "string",
"description" : "Verifier name"
},
"strict" : {
"type" : "boolean",
"description" : "???"
},
"source" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "name" ]
}, {
"required" : [ "type", "name", "remove" ]
}, {
"required" : [ "type", "name" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of location",
"enum" : [ "InQueryParam", "InHeader", "InCookie" ]
},
"name" : {
"type" : "string",
"description" : "Query param name"
},
"remove" : {
"type" : "string",
"description" : "Remove from value"
}
}
},
"algoSettings" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
},
"type" : "object"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Entity tags"
},
"id" : {
"type" : "string",
"description" : "Verifier id"
},
"_loc" : {
"description" : "Entity location",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"strategy" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "strict", "token", "verificationSettings" ]
}, {
"required" : [ "type", "verificationSettings" ]
}, {
"required" : [ "type", "verificationSettings", "algoSettings" ]
}, {
"required" : [ "type", "verificationSettings", "transformSettings", "algoSettings" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of strategy",
"enum" : [ "PassThrough", "Sign", "Transform", "DefaultToken" ]
},
"strict" : {
"type" : "boolean",
"description" : "If the token already exists in the request, then fail"
},
"token" : {
"type" : "object",
"description" : "The default token"
},
"verificationSettings" : {
"description" : "Verification settings",
"properties" : {
"fields" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Fields validation"
},
"arrayFields" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Fields array validation"
}
},
"type" : "object"
},
"algoSettings" : {
"description" : "Algorithm settings for re-signing token",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "size", "publicKey", "privateKey" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "secret", "base64" ]
}, {
"required" : [ "type", "url", "tlsConfig", "kty", "proxy", "headers", "ttl", "timeout" ]
}, {
"required" : [ "type", "onlyExposedCerts" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "publicKey", "privateKey" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
}
},
"transformSettings" : {
"description" : "Transformation settings",
"properties" : {
"location" : {
"description" : "Location of the token",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of location",
"enum" : [ "InQueryParam", "InHeader", "InCookie" ]
},
"name" : {
"type" : "string",
"description" : "Query param name"
},
"remove" : {
"type" : "string",
"description" : "Remove from value"
}
},
"type" : "object"
},
"mappingSettings" : {
"description" : "Token mapping settings",
"properties" : {
"map" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Change values"
},
"values" : {
"type" : "object",
"description" : "Add values"
},
"remove" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Remove some token claims"
}
},
"type" : "object"
}
},
"type" : "object"
}
}
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Entity metadata"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"ids" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"letsEncrypt" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"id" : {
"type" : "string",
"description" : "???"
},
"config" : {
"description" : "???",
"properties" : {
"conf" : {
"type" : "object",
"description" : "???"
}
},
"type" : "object"
}
}
},
"otoroshi.plugins.biscuit.PreRoutingVerifierContext" : {
"type" : "object",
"description" : "???",
"properties" : {
"ctx" : {
"description" : "???",
"properties" : {
"globalConfig" : {
"type" : "object",
"description" : "???"
},
"snowflake" : {
"type" : "string",
"description" : "???"
},
"descriptor" : {
"description" : "???",
"properties" : {
"buildMode" : {
"type" : "boolean",
"description" : "???"
},
"hosts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"privateApp" : {
"type" : "boolean",
"description" : "???"
},
"localScheme" : {
"type" : "string",
"description" : "???"
},
"authConfigRef" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"issueCertCA" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"root" : {
"type" : "string",
"description" : "???"
},
"name" : {
"type" : "string",
"description" : "???"
},
"additionalHeaders" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"domain" : {
"type" : "string",
"description" : "???"
},
"clientConfig" : {
"description" : "???",
"properties" : {
"connectionTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"useCircuitBreaker" : {
"type" : "boolean",
"description" : "???"
},
"retryInitialDelay" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"cacheConnectionSettings" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"queueSize" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
},
"type" : "object"
},
"proxy" : {
"description" : "???",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"callTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"callAndStreamTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"globalTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"maxErrors" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"retries" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"backoffFactor" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"customTimeouts" : {
"type" : "array",
"items" : {
"properties" : {
"path" : {
"type" : "string",
"description" : "???"
},
"callAndStreamTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"callTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"idleTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"globalTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"connectionTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"idleTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"sampleInterval" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
}
},
"type" : "object"
},
"matchingRoot" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"forceHttps" : {
"type" : "boolean",
"description" : "???"
},
"localHost" : {
"type" : "string",
"description" : "???"
},
"sendOtoroshiHeadersBack" : {
"type" : "boolean",
"description" : "???"
},
"healthCheck" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"url" : {
"type" : "string",
"description" : "???"
},
"timeout" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
},
"type" : "object"
},
"strictlyPrivate" : {
"type" : "boolean",
"description" : "???"
},
"detectApiKeySooner" : {
"type" : "boolean",
"description" : "???"
},
"allowHttp10" : {
"type" : "boolean",
"description" : "???"
},
"subdomain" : {
"type" : "string",
"description" : "???"
},
"paths" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"stripPath" : {
"type" : "boolean",
"description" : "???"
},
"secComAlgoChallengeOtoToBack" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
},
"type" : "object"
},
"apiKeyConstraints" : {
"description" : "???",
"properties" : {
"customHeadersAuth" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"clientIdHeaderName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"clientSecretHeaderName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"routing" : {
"description" : "???",
"properties" : {
"oneTagIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"noneMetaKeysIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"oneMetaIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"oneMetaKeyIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allMetaKeysIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"noneTagIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allTagsIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allMetaIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"noneMetaIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"clientIdAuth" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"headerName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"queryName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"jwtAuth" : {
"description" : "???",
"properties" : {
"keyPairSigned" : {
"type" : "boolean",
"description" : "???"
},
"cookieName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"queryName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"headerName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"secretSigned" : {
"type" : "boolean",
"description" : "???"
},
"maxJwtLifespanSecs" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"includeRequestAttributes" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"basicAuth" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"headerName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"queryName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
}
},
"type" : "object"
},
"env" : {
"type" : "string",
"description" : "???"
},
"xForwardedHeaders" : {
"type" : "boolean",
"description" : "???"
},
"transformerRefs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"gzip" : {
"description" : "???",
"properties" : {
"compressionLevel" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"blackList" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"chunkedThreshold" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"bufferSize" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"whiteList" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"sendInfoToken" : {
"type" : "boolean",
"description" : "???"
},
"tcpUdpTunneling" : {
"type" : "boolean",
"description" : "???"
},
"removeHeadersOut" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"useAkkaHttpClient" : {
"type" : "boolean",
"description" : "???"
},
"maintenanceMode" : {
"type" : "boolean",
"description" : "???"
},
"id" : {
"type" : "string",
"description" : "???"
},
"removeHeadersIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"logAnalyticsOnServer" : {
"type" : "boolean",
"description" : "???"
},
"secComAlgoInfoToken" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
},
"type" : "object"
},
"userFacing" : {
"type" : "boolean",
"description" : "???"
},
"transformerConfig" : {
"type" : "object",
"description" : "???"
},
"clientValidatorRef" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"securityExcludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"ipFiltering" : {
"description" : "???",
"properties" : {
"whitelist" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"blacklist" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"targets" : {
"type" : "array",
"items" : {
"properties" : {
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"host" : {
"type" : "string",
"description" : "???"
},
"weight" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"protocol" : {
"type" : "string",
"enum" : [ "HTTP/1.0", "HTTP/1.1", "HTTP/2.0", "HTTP/3.0" ],
"description" : "???"
},
"predicate" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"dc" : {
"type" : "string",
"description" : "???"
},
"positions" : {
"type" : "array",
"items" : {
"properties" : {
"latitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"longitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"radius" : {
"type" : "number",
"format" : "double",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"provider" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataCenter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"rack" : {
"type" : "string",
"description" : "???"
},
"region" : {
"type" : "string",
"description" : "???"
},
"zone" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"ipAddress" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"mtlsConfig" : {
"description" : "???",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"scheme" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"redirection" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"code" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"to" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"restrictions" : {
"description" : "???",
"properties" : {
"forbidden" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"allowed" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"notFound" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"allowLast" : {
"type" : "boolean",
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"overrideHost" : {
"type" : "boolean",
"description" : "???"
},
"accessValidator" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"refs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"config" : {
"type" : "object",
"description" : "???"
}
},
"type" : "object"
},
"sendStateChallenge" : {
"type" : "boolean",
"description" : "???"
},
"chaosConfig" : {
"description" : "???",
"properties" : {
"badResponsesFaultConfig" : {
"description" : "Settings for bad responses",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"responses" : {
"type" : "array",
"items" : {
"properties" : {
"status" : {
"type" : "integer",
"format" : "int32",
"description" : "The HTTP status for the response"
},
"body" : {
"type" : "string",
"description" : "The body of the HTTP response"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "The HTTP headers of the response"
}
},
"type" : "object"
},
"description" : "The possibles responses"
}
}
},
"largeRequestFaultConfig" : {
"description" : "Settings for large requests",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"additionalRequestSize" : {
"type" : "integer",
"format" : "int32",
"description" : "The size added to the request body in bytes. Added payload will be spaces only."
}
}
},
"largeResponseFaultConfig" : {
"description" : "Settings for large responses",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"additionalResponseSize" : {
"type" : "integer",
"format" : "int32",
"description" : "Add n 0 bytes"
}
}
},
"latencyInjectionFaultConfig" : {
"description" : "Settings for latency injection",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"from" : {
"type" : "number",
"description" : "The start range of latency added to the request"
},
"to" : {
"type" : "number",
"description" : "The end range of latency added to the request"
}
}
},
"enabled" : {
"type" : "boolean",
"description" : "Whether or not this config is enabled"
}
},
"type" : "object"
},
"secComInfoTokenVersion" : {
"description" : "Version of the info token",
"type" : "string",
"enum" : [ "Legacy", "Latest" ]
},
"additionalHeadersOut" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"secComHeaders" : {
"description" : "???",
"properties" : {
"claimRequestName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"stateRequestName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"stateResponseName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"matchingHeaders" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"secComAlgoChallengeBackToOto" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
},
"type" : "object"
},
"secComUseSameAlgo" : {
"type" : "boolean",
"description" : "???"
},
"useNewWSClient" : {
"type" : "boolean",
"description" : "???"
},
"secComExcludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"redirectToLocal" : {
"type" : "boolean",
"description" : "???"
},
"enforceSecureCommunication" : {
"type" : "boolean",
"description" : "???"
},
"missingOnlyHeadersOut" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"secComSettings" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
},
"type" : "object"
},
"handleLegacyDomain" : {
"type" : "boolean",
"description" : "???"
},
"canary" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"traffic" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"targets" : {
"type" : "array",
"items" : {
"properties" : {
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"host" : {
"type" : "string",
"description" : "???"
},
"weight" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"protocol" : {
"type" : "string",
"enum" : [ "HTTP/1.0", "HTTP/1.1", "HTTP/2.0", "HTTP/3.0" ],
"description" : "???"
},
"predicate" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"dc" : {
"type" : "string",
"description" : "???"
},
"positions" : {
"type" : "array",
"items" : {
"properties" : {
"latitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"longitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"radius" : {
"type" : "number",
"format" : "double",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"provider" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataCenter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"rack" : {
"type" : "string",
"description" : "???"
},
"region" : {
"type" : "string",
"description" : "???"
},
"zone" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"ipAddress" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"mtlsConfig" : {
"description" : "???",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"scheme" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"root" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"_loc" : {
"description" : "???",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"plugins" : {
"description" : "???",
"properties" : {
"config" : {
"type" : "object",
"description" : "Plugins configuration"
},
"enabled" : {
"type" : "boolean",
"description" : "Plugins enabled"
},
"excluded" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Excluded paths"
},
"refs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Enabled plugins"
}
},
"type" : "object"
},
"secComTtl" : {
"type" : "number",
"description" : "???"
},
"description" : {
"type" : "string",
"description" : "???"
},
"secComVersion" : {
"description" : "Version of the challenge token",
"type" : "string",
"enum" : [ "V1", "v2" ]
},
"preRouting" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"refs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"config" : {
"type" : "object",
"description" : "???"
}
},
"type" : "object"
},
"groups" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"readOnly" : {
"type" : "boolean",
"description" : "???"
},
"privatePatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"targetsLoadBalancing" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"enum" : [ "BestResponseTime", "IpAddressHash", "Random", "RoundRobin", "Sticky", "WeightedBestResponseTime" ]
},
"ratio" : {
"type" : "number",
"format" : "double"
}
},
"type" : "object"
},
"cors" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"allowCredentials" : {
"type" : "boolean",
"description" : "???"
},
"maxAge" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"allowMethods" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allowHeaders" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"exposeHeaders" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allowOrigin" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"publicPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"api" : {
"description" : "???",
"properties" : {
"exposeApi" : {
"type" : "boolean",
"description" : "???"
},
"openApiDescriptorUrl" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"missingOnlyHeadersIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"issueCert" : {
"type" : "boolean",
"description" : "???"
},
"headersVerification" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"jwtVerifier" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of verifier",
"enum" : [ "global", "local", "ref" ]
},
"desc" : {
"type" : "string",
"description" : "Verifier description"
},
"name" : {
"type" : "string",
"description" : "Verifier name"
},
"strict" : {
"type" : "boolean",
"description" : "???"
},
"source" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "name" ]
}, {
"required" : [ "type", "name", "remove" ]
}, {
"required" : [ "type", "name" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of location",
"enum" : [ "InQueryParam", "InHeader", "InCookie" ]
},
"name" : {
"type" : "string",
"description" : "Query param name"
},
"remove" : {
"type" : "string",
"description" : "Remove from value"
}
}
},
"algoSettings" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
},
"type" : "object"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Entity tags"
},
"id" : {
"type" : "string",
"description" : "Verifier id"
},
"_loc" : {
"description" : "Entity location",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"strategy" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "strict", "token", "verificationSettings" ]
}, {
"required" : [ "type", "verificationSettings" ]
}, {
"required" : [ "type", "verificationSettings", "algoSettings" ]
}, {
"required" : [ "type", "verificationSettings", "transformSettings", "algoSettings" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of strategy",
"enum" : [ "PassThrough", "Sign", "Transform", "DefaultToken" ]
},
"strict" : {
"type" : "boolean",
"description" : "If the token already exists in the request, then fail"
},
"token" : {
"type" : "object",
"description" : "The default token"
},
"verificationSettings" : {
"description" : "Verification settings",
"properties" : {
"fields" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Fields validation"
},
"arrayFields" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Fields array validation"
}
},
"type" : "object"
},
"algoSettings" : {
"description" : "Algorithm settings for re-signing token",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "size", "publicKey", "privateKey" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "secret", "base64" ]
}, {
"required" : [ "type", "url", "tlsConfig", "kty", "proxy", "headers", "ttl", "timeout" ]
}, {
"required" : [ "type", "onlyExposedCerts" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "publicKey", "privateKey" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
}
},
"transformSettings" : {
"description" : "Transformation settings",
"properties" : {
"location" : {
"description" : "Location of the token",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of location",
"enum" : [ "InQueryParam", "InHeader", "InCookie" ]
},
"name" : {
"type" : "string",
"description" : "Query param name"
},
"remove" : {
"type" : "string",
"description" : "Remove from value"
}
},
"type" : "object"
},
"mappingSettings" : {
"description" : "Token mapping settings",
"properties" : {
"map" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Change values"
},
"values" : {
"type" : "object",
"description" : "Add values"
},
"remove" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Remove some token claims"
}
},
"type" : "object"
}
},
"type" : "object"
}
}
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Entity metadata"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"ids" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"letsEncrypt" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"config" : {
"type" : "object",
"description" : "???"
},
"index" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"attrs" : {
"description" : "???",
"properties" : { },
"type" : "object"
}
},
"type" : "object"
},
"apk" : {
"description" : "???",
"properties" : {
"dailyQuota" : {
"type" : "integer",
"format" : "int64",
"description" : "Authorized number of calls per day"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Bunch of metadata for the key"
},
"throttlingQuota" : {
"type" : "integer",
"format" : "int64",
"description" : "Authorized number of calls per second, measured on 10 seconds"
},
"constrainedServicesOnly" : {
"type" : "boolean",
"description" : "This apikey can only be used on services that constrained their apikey routing"
},
"allowClientIdOnly" : {
"type" : "boolean",
"description" : "This apikey can be used juste with the client_id value"
},
"_loc" : {
"description" : "The location of the apikey",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"restrictions" : {
"description" : "Apikey restrictions settings",
"properties" : {
"forbidden" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"allowed" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"notFound" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"allowLast" : {
"type" : "boolean",
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Apikey tags"
},
"enabled" : {
"type" : "boolean",
"description" : "Whether or not the key is enabled. If disabled, resources won't be available to calls using this key"
},
"readOnly" : {
"type" : "boolean",
"description" : "The apikey only allow access for GET, HEAD and OPTIONS verbs"
},
"clientSecret" : {
"type" : "string",
"description" : "The secret of the Api Key. Usually 64 random alpha numerical characters, but can be anything"
},
"validUntil" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"clientName" : {
"type" : "string",
"description" : "The name of the api key, for humans ;-)"
},
"monthlyQuota" : {
"type" : "integer",
"format" : "int64",
"description" : "Authorized number of calls per month"
},
"description" : {
"type" : "string",
"description" : "Description of this apikey"
},
"rotation" : {
"description" : "Apikey rotation settings",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "Rotation enabled"
},
"rotationEvery" : {
"type" : "integer",
"format" : "int64",
"description" : "Rotate every n hours"
},
"gracePeriod" : {
"type" : "integer",
"format" : "int64",
"description" : "period (in hours) during which both secrets works"
},
"nextSecret" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"authorizedEntities" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "The group/service ids (prefixed by group_ or service_ on which the key is authorized"
},
"clientId" : {
"type" : "string",
"description" : "The unique id of the Api Key. Usually 16 random alpha numerical characters, but can be anything"
}
},
"type" : "object"
}
}
},
"CodeBody" : {
"type" : "string",
"description" : "Plugin scala code"
},
"otoroshi.models.AutoCert" : {
"type" : "object",
"description" : "Settings to generate certificates on the fly",
"properties" : {
"allowed" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "allowed domains"
},
"enabled" : {
"type" : "boolean",
"description" : "Enable auto cert"
},
"replyNicely" : {
"type" : "boolean",
"description" : "Reply TLS error with an auto generated certificate for the domain"
},
"notAllowed" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "not allowed domains"
},
"caRef" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.next.plugins.BasicAuthCallerConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"username" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"password" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"header_name" : {
"type" : "string",
"description" : "???"
},
"header_value_format" : {
"type" : "string",
"description" : "???"
}
}
},
"CertValidResponse" : {
"type" : "object",
"description" : "Is certificate valid",
"properties" : {
"valid" : {
"type" : "boolean"
}
}
},
"otoroshi.models.RestrictionPath" : {
"type" : "object",
"description" : "???",
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.plugins.loggers.BodyLoggerFilterConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"json" : {
"type" : "object",
"description" : "???"
}
}
},
"otoroshi.next.plugins.OAuth1Caller" : {
"type" : "object",
"description" : "???",
"properties" : {
"token_secret" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"consumer_secret" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"algo" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"token" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"consumer_key" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.plugins.external.ExternalHttpValidator" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.models.NgClientConfig" : {
"type" : "object",
"description" : "Settings for the http client when http request is forwarded",
"properties" : {
"idle_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout on idle connection"
},
"sample_interval" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify the sliding window time for the circuit breaker in milliseconds, after this time, error count will be reseted"
},
"cache_connection_settings" : {
"description" : "Cached connection settings",
"properties" : {
"queue_size" : {
"type" : "integer",
"format" : "int32",
"description" : "How much request can be queue before dropping it"
},
"enabled" : {
"type" : "boolean",
"description" : "Is cached connection enabled"
}
},
"type" : "object"
},
"call_and_stream_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (hard timeout, connection will be closed after that duration)"
},
"custom_timeouts" : {
"type" : "array",
"items" : {
"properties" : {
"connection_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout at connection"
},
"call_and_stream_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (hard timeout, connection will be closed after that duration)"
},
"path" : {
"type" : "string",
"description" : "path on which this configuration works"
},
"call_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (soft timeout as it's enforced by the circuit breaker)"
},
"idle_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout on idle connection"
},
"global_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long the global call (with retries) should last at most in milliseconds"
}
},
"type" : "object"
},
"description" : "Custom timeouts per path"
},
"connection_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout at connection"
},
"call_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (soft timeout as it's enforced by the circuit breaker)"
},
"global_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long the global call (with retries) should last at most in milliseconds"
},
"retry_initial_delay" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify the delay between two retries. Each retry, the delay is multiplied by the backoff factor"
},
"backoff_factor" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify the factor to multiply the delay for each retry"
},
"proxy" : {
"description" : "Web proxy settings for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"retries" : {
"type" : "integer",
"format" : "int32",
"description" : "Specify how many times the client will try to fetch the result of the request after an error before giving up."
},
"max_errors" : {
"type" : "integer",
"format" : "int32",
"description" : "Specify how many errors can pass before opening the circuit breaker"
}
}
},
"otoroshi.plugins.composite.CompositePlugin" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.wrappers.CompositeWrapper" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.models.GeolocationMatch" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"positions" : {
"type" : "array",
"items" : {
"properties" : {
"latitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"longitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"radius" : {
"type" : "number",
"format" : "double",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
}
},
"type" : "object",
"description" : "???"
},
"otoroshi.next.plugins.NgGeolocationInfoEndpoint" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"BulkResponseBody" : {
"type" : "object",
"description" : "BulkResponseBody object"
},
"otoroshi.next.plugins.NgHasAllowedUsersValidatorConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"profile_not_match" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"profile_match" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"email_domains" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"usernames" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"metadata_match" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"metadata_not_match" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"emails" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.models.BadResponsesFaultConfig" : {
"type" : "object",
"description" : "List of bad response settings",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"responses" : {
"type" : "array",
"items" : {
"properties" : {
"status" : {
"type" : "integer",
"format" : "int32",
"description" : "The HTTP status for the response"
},
"body" : {
"type" : "string",
"description" : "The body of the HTTP response"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "The HTTP headers of the response"
}
},
"type" : "object"
},
"description" : "The possibles responses"
}
}
},
"otoroshi.next.plugins.SOAPActionConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"jq_response_filter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"jq_request_filter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"preserve_query" : {
"type" : "boolean",
"description" : "???"
},
"convert_request_body_to_xml" : {
"type" : "boolean",
"description" : "???"
},
"charset" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"url" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"action" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"envelope" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.models.Target" : {
"type" : "object",
"description" : "???",
"properties" : {
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"host" : {
"type" : "string",
"description" : "???"
},
"weight" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"protocol" : {
"type" : "string",
"enum" : [ "HTTP/1.0", "HTTP/1.1", "HTTP/2.0", "HTTP/3.0" ],
"description" : "???"
},
"predicate" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"dc" : {
"type" : "string",
"description" : "???"
},
"positions" : {
"type" : "array",
"items" : {
"properties" : {
"latitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"longitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"radius" : {
"type" : "number",
"format" : "double",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"provider" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataCenter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"rack" : {
"type" : "string",
"description" : "???"
},
"region" : {
"type" : "string",
"description" : "???"
},
"zone" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"ipAddress" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"mtlsConfig" : {
"description" : "???",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"scheme" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.next.plugins.Redirection" : {
"type" : "object",
"description" : "???",
"properties" : {
"code" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"to" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.plugins.discovery.DiscoveryJobRegistrationId" : {
"type" : "object",
"description" : "???",
"properties" : {
"id" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.next.plugins.ContextValidationConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"validators" : {
"type" : "array",
"items" : {
"properties" : {
"path" : {
"type" : "string",
"description" : "???"
},
"value" : {
"type" : "object",
"description" : "???"
},
"error" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgLegacyApikeyCallConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"public_patterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"private_patterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"config" : {
"description" : "???",
"properties" : {
"mandatory" : {
"type" : "boolean",
"description" : "???"
},
"extractors" : {
"description" : "???",
"properties" : {
"basic" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"header_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"query_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"custom_headers" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"client_id_header_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"client_secret_header_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"client_id" : {
"description" : "???",
"properties" : {
"header_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"query_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"enabled" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"jwt" : {
"description" : "???",
"properties" : {
"cookie_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"key_pair_signed" : {
"type" : "boolean",
"description" : "???"
},
"query_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"secret_signed" : {
"type" : "boolean",
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"include_request_attrs" : {
"type" : "boolean",
"description" : "???"
},
"header_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
}
},
"type" : "object"
},
"pass_with_user" : {
"type" : "boolean",
"description" : "???"
},
"wipe_backend_request" : {
"type" : "boolean",
"description" : "???"
},
"validate" : {
"type" : "boolean",
"description" : "???"
},
"routing" : {
"description" : "???",
"properties" : {
"none_meta_keys_in" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"all_meta_keys_in" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"all_meta_in" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"none_meta_in" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"one_tag_in" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"one_meta_in" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"all_tags_in" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"one_meta_key_in" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"none_tag_in" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"update_quotas" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
}
}
},
"SimpleAdminList" : {
"type" : "array",
"items" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of admin",
"enum" : [ "simple", "webauthn" ]
},
"username" : {
"type" : "string",
"description" : "User username"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Entity tags"
},
"label" : {
"type" : "string",
"description" : "User label"
},
"_loc" : {
"description" : "Entity location",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"typ" : {
"description" : "Admin kind",
"type" : "string",
"enum" : [ "SIMPLE", "WEBAUTHN" ]
},
"createdAt" : {
"type" : "number",
"description" : "User creation date"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Entity metadata"
},
"rights" : {
"description" : "User rights",
"properties" : {
"rights" : {
"type" : "array",
"items" : {
"properties" : {
"tenant" : {
"description" : "Access rights on organizations",
"properties" : {
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
}
},
"type" : "object"
},
"teams" : {
"type" : "array",
"items" : {
"properties" : {
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
}
},
"type" : "object"
},
"description" : "Access rights on teams"
}
},
"type" : "object"
},
"description" : "Access rights of a user"
}
},
"type" : "object"
},
"password" : {
"type" : "string",
"description" : "User password (bcrypt hashed)"
}
},
"type" : "object"
}
},
"otoroshi.models.Proxies" : {
"type" : "object",
"description" : "Various web proxy settings for http client",
"properties" : {
"elastic" : {
"description" : "Web proxy used to call elastic",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"eventsWebhooks" : {
"description" : "Web proxy used to call webhooks",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"jwk" : {
"description" : "Web proxy used to fetch jwks",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"auth" : {
"description" : "Web proxy used to call OAuth providers",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"clevercloud" : {
"description" : "Web proxy used to call clevercloud",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"alertEmails" : {
"description" : "Web proxy used to send alert emails",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"authority" : {
"description" : "Web proxy used to check authorities",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"services" : {
"description" : "Web proxy used to access services targets",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
}
}
},
"otoroshi.next.plugins.GlobalThrottling" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.models.ApiKeyRotation" : {
"type" : "object",
"description" : "Settings for automatic apikey rotation with grace period",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "Rotation enabled"
},
"rotationEvery" : {
"type" : "integer",
"format" : "int64",
"description" : "Rotate every n hours"
},
"gracePeriod" : {
"type" : "integer",
"format" : "int64",
"description" : "period (in hours) during which both secrets works"
},
"nextSecret" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.next.plugins.ApikeyAuthModule" : {
"type" : "object",
"description" : "???",
"properties" : {
"realm" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"matcher" : {
"description" : "???",
"type" : "object",
"properties" : {
"oneTagIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"noneMetaKeysIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"oneMetaIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"oneMetaKeyIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allMetaKeysIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"noneTagIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allTagsIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allMetaIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"noneMetaIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
}
}
}
}
},
"otoroshi.utils.http.CacheConnectionSettings" : {
"type" : "object",
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"queueSize" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
}
},
"otoroshi.plugins.jobs.kubernetes.KubernetesAdmissionWebhookSidecarInjector" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.tcp.SniSettings" : {
"type" : "object",
"description" : "SNI settings for a TCP proxy",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "SNI extraction enabled"
},
"forwardIfNoMatch" : {
"type" : "boolean",
"description" : ""
},
"forwardsTo" : {
"description" : "forwards call to",
"properties" : {
"host" : {
"type" : "string",
"description" : "Target host"
},
"ip" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"port" : {
"type" : "integer",
"format" : "int32",
"description" : "Target port"
},
"tls" : {
"type" : "boolean",
"description" : "Use tls"
}
},
"type" : "object"
}
}
},
"otoroshi.plugins.clientcert.HasClientCertMatchingValidator" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.models.PluginIndex" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.models.LoadBalancing" : {
"type" : "object",
"description" : "Loadbalancing strategy",
"properties" : {
"type" : {
"type" : "string",
"enum" : [ "BestResponseTime", "IpAddressHash", "Random", "RoundRobin", "Sticky", "WeightedBestResponseTime" ]
},
"ratio" : {
"type" : "number",
"format" : "double"
}
}
},
"otoroshi.models.RedirectionSettings" : {
"type" : "object",
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"code" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"to" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgOtoroshiChallengeKeys" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.wrappers.RequestTransformerWrapper" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.TailscaleStatus" : {
"type" : "object",
"description" : "???",
"properties" : {
"raw" : {
"type" : "object",
"description" : "???"
}
}
},
"otoroshi.models.OtoroshiAdmin" : {
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "username", "tags", "label", "_loc", "typ", "createdAt", "metadata", "rights", "password" ]
}, {
"required" : [ "type", "username", "tags", "label", "_loc", "typ", "createdAt", "metadata", "rights", "credentials", "handle", "password" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of admin",
"enum" : [ "simple", "webauthn" ]
},
"username" : {
"type" : "string",
"description" : "User username"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Entity tags"
},
"label" : {
"type" : "string",
"description" : "User label"
},
"_loc" : {
"description" : "Entity location",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"typ" : {
"description" : "Admin kind",
"type" : "string",
"enum" : [ "SIMPLE", "WEBAUTHN" ]
},
"createdAt" : {
"type" : "number",
"description" : "User creation date"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Entity metadata"
},
"rights" : {
"description" : "User rights",
"properties" : {
"rights" : {
"type" : "array",
"items" : {
"properties" : {
"tenant" : {
"description" : "Access rights on organizations",
"properties" : {
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
}
},
"type" : "object"
},
"teams" : {
"type" : "array",
"items" : {
"properties" : {
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
}
},
"type" : "object"
},
"description" : "Access rights on teams"
}
},
"type" : "object"
},
"description" : "Access rights of a user"
}
},
"type" : "object"
},
"password" : {
"type" : "string",
"description" : "User password"
},
"credentials" : {
"type" : "object",
"additionalProperties" : {
"type" : "object"
},
"description" : "User webauthn credentials"
},
"handle" : {
"type" : "string",
"description" : "User webauthn handle"
}
}
},
"otoroshi.models.JwtVerifier" : {
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "desc", "name", "strict", "source", "algoSettings", "tags", "id", "_loc", "strategy", "metadata" ]
}, {
"required" : [ "type", "strict", "source", "algoSettings", "enabled", "excludedPatterns", "strategy" ]
}, {
"required" : [ "type", "excludedPatterns", "enabled", "ids" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of verifier",
"enum" : [ "global", "local", "ref" ]
},
"desc" : {
"type" : "string",
"description" : "Verifier description"
},
"name" : {
"type" : "string",
"description" : "Verifier name"
},
"strict" : {
"type" : "boolean",
"description" : "???"
},
"source" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "name" ]
}, {
"required" : [ "type", "name", "remove" ]
}, {
"required" : [ "type", "name" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of location",
"enum" : [ "InQueryParam", "InHeader", "InCookie" ]
},
"name" : {
"type" : "string",
"description" : "Query param name"
},
"remove" : {
"type" : "string",
"description" : "Remove from value"
}
}
},
"algoSettings" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
},
"type" : "object"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Entity tags"
},
"id" : {
"type" : "string",
"description" : "Verifier id"
},
"_loc" : {
"description" : "Entity location",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"strategy" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "strict", "token", "verificationSettings" ]
}, {
"required" : [ "type", "verificationSettings" ]
}, {
"required" : [ "type", "verificationSettings", "algoSettings" ]
}, {
"required" : [ "type", "verificationSettings", "transformSettings", "algoSettings" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of strategy",
"enum" : [ "PassThrough", "Sign", "Transform", "DefaultToken" ]
},
"strict" : {
"type" : "boolean",
"description" : "If the token already exists in the request, then fail"
},
"token" : {
"type" : "object",
"description" : "The default token"
},
"verificationSettings" : {
"description" : "Verification settings",
"properties" : {
"fields" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Fields validation"
},
"arrayFields" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Fields array validation"
}
},
"type" : "object"
},
"algoSettings" : {
"description" : "Algorithm settings for re-signing token",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "size", "publicKey", "privateKey" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "secret", "base64" ]
}, {
"required" : [ "type", "url", "tlsConfig", "kty", "proxy", "headers", "ttl", "timeout" ]
}, {
"required" : [ "type", "onlyExposedCerts" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "publicKey", "privateKey" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
}
},
"transformSettings" : {
"description" : "Transformation settings",
"properties" : {
"location" : {
"description" : "Location of the token",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of location",
"enum" : [ "InQueryParam", "InHeader", "InCookie" ]
},
"name" : {
"type" : "string",
"description" : "Query param name"
},
"remove" : {
"type" : "string",
"description" : "Remove from value"
}
},
"type" : "object"
},
"mappingSettings" : {
"description" : "Token mapping settings",
"properties" : {
"map" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Change values"
},
"values" : {
"type" : "object",
"description" : "Add values"
},
"remove" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Remove some token claims"
}
},
"type" : "object"
}
},
"type" : "object"
}
}
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Entity metadata"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"ids" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgUserAgentExtractor" : {
"type" : "object",
"description" : "???",
"properties" : {
"log" : {
"type" : "boolean",
"description" : "???"
}
}
},
"otoroshi.next.plugins.MockFormData" : {
"type" : "object",
"description" : "???",
"properties" : {
"resources" : {
"type" : "array",
"items" : {
"properties" : {
"name" : {
"type" : "string",
"description" : "???"
},
"schema" : {
"type" : "array",
"items" : {
"properties" : {
"field_name" : {
"type" : "string",
"description" : "???"
},
"field_type" : {
"type" : "string",
"description" : "???"
},
"value" : {
"type" : "object",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"additional_data" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"description" : "???"
},
"endpoints" : {
"type" : "array",
"items" : {
"properties" : {
"status" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"body" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"path" : {
"type" : "string",
"description" : "???"
},
"resource" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"headers" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"method" : {
"type" : "string",
"description" : "???"
},
"resource_list" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
}
}
},
"otoroshi.plugins.jsoup.HtmlPatcher" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.plugins.apikeys.ClientCredentialFlowBody" : {
"type" : "object",
"description" : "???",
"properties" : {
"scope" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"clientId" : {
"type" : "string",
"description" : "???"
},
"clientSecret" : {
"type" : "string",
"description" : "???"
},
"grantType" : {
"type" : "string",
"description" : "???"
},
"bearerKind" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.auth.BasicAuthModuleConfig" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the type of the module",
"enum" : [ "saml", "oauth1", "oauth2", "ldap", "basic" ]
},
"desc" : {
"type" : "string",
"description" : "???"
},
"name" : {
"type" : "string",
"description" : "???"
},
"clientSideSessionEnabled" : {
"type" : "boolean",
"description" : "???"
},
"basicAuth" : {
"type" : "boolean",
"description" : "???"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"users" : {
"type" : "array",
"items" : {
"properties" : {
"metadata" : {
"type" : "object",
"description" : "???"
},
"password" : {
"type" : "string",
"description" : "???"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"email" : {
"type" : "string",
"description" : "???"
},
"webauthn" : {
"description" : "???",
"type" : "object",
"properties" : {
"handle" : {
"type" : "string",
"description" : "???"
},
"credentials" : {
"type" : "object",
"additionalProperties" : {
"type" : "object"
},
"description" : "???"
}
}
},
"rights" : {
"description" : "???",
"properties" : {
"rights" : {
"type" : "array",
"items" : {
"properties" : {
"tenant" : {
"description" : "Access rights on organizations",
"properties" : {
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
}
},
"type" : "object"
},
"teams" : {
"type" : "array",
"items" : {
"properties" : {
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
}
},
"type" : "object"
},
"description" : "Access rights on teams"
}
},
"type" : "object"
},
"description" : "Access rights of a user"
}
},
"type" : "object"
},
"name" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"sessionMaxAge" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"webauthn" : {
"type" : "boolean",
"description" : "???"
},
"userValidators" : {
"type" : "array",
"items" : {
"properties" : {
"path" : {
"type" : "string",
"description" : "???"
},
"value" : {
"type" : "object",
"description" : "???"
},
"error" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"description" : "???"
},
"id" : {
"type" : "string",
"description" : "???"
},
"_loc" : {
"description" : "???",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"sessionCookieValues" : {
"description" : "???",
"properties" : {
"httpOnly" : {
"type" : "boolean",
"description" : "???"
},
"secure" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
}
},
"type" : "object",
"description" : "???"
},
"otoroshi.plugins.metrics.PrometheusSupport" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.auth.WasmAuthModuleConfig" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the type of the module",
"enum" : [ "saml", "oauth1", "oauth2", "ldap", "basic" ]
},
"wasmRef" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"name" : {
"type" : "string",
"description" : "???"
},
"clientSideSessionEnabled" : {
"type" : "boolean",
"description" : "???"
},
"description" : {
"type" : "string",
"description" : "???"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"sessionMaxAge" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"userValidators" : {
"type" : "array",
"items" : {
"properties" : {
"path" : {
"type" : "string",
"description" : "???"
},
"value" : {
"type" : "object",
"description" : "???"
},
"error" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"description" : "???"
},
"id" : {
"type" : "string",
"description" : "???"
},
"_loc" : {
"description" : "???",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"sessionCookieValues" : {
"description" : "???",
"properties" : {
"httpOnly" : {
"type" : "boolean",
"description" : "???"
},
"secure" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
}
},
"type" : "object",
"description" : "???"
},
"otoroshi.plugins.izanami.IzanamiProxyConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"izanamiClientId" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
},
"mtls" : {
"description" : "???",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"featuresEnabled" : {
"type" : "boolean",
"description" : "???"
},
"featuresWithContextEnabled" : {
"type" : "boolean",
"description" : "???"
},
"izanamiClientSecret" : {
"type" : "string",
"description" : "???"
},
"timeout" : {
"type" : "number",
"description" : "???"
},
"configurationEnabled" : {
"type" : "boolean",
"description" : "???"
},
"featurePattern" : {
"type" : "string",
"description" : "???"
},
"izanamiUrl" : {
"type" : "string",
"description" : "???"
},
"autoContext" : {
"type" : "boolean",
"description" : "???"
},
"configPattern" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgHttpClientCache" : {
"type" : "object",
"description" : "???",
"properties" : {
"max_age_seconds" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"methods" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"mime_types" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgBadResponsesFaultConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"responses" : {
"type" : "array",
"items" : {
"properties" : {
"status" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"body" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
}
}
},
"otoroshi.plugins.accesslog.KafkaAccessLog" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.AdditionalHeadersOut" : {
"type" : "object",
"description" : "???",
"properties" : {
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.plugins.core.apikeys.CustomHeadersApikeyExtractor" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.utils.mailer.EmailLocation" : {
"type" : "object",
"description" : "Email location settings",
"properties" : {
"name" : {
"type" : "string",
"description" : "Destination name"
},
"email" : {
"type" : "string",
"description" : "Email address"
}
}
},
"otoroshi.plugins.envoy.EnvoyControlPlane" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.models.RackMatch" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"rack" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object",
"description" : "???"
},
"otoroshi.plugins.oidc.ThirdPartyApiKeyConfig" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.models.ESAlgoSettings" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "The EC private key. If used for signing, can be null"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object",
"description" : "Settings to use elliptic curve signing algorithm"
},
"otoroshi.plugins.oidc.OIDCThirdPartyApiKeyConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"headerName" : {
"type" : "string",
"description" : "???"
},
"localVerificationOnly" : {
"type" : "boolean",
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"ttl" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"uniqueApiKey" : {
"type" : "boolean",
"description" : "???"
},
"rolesPath" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"mode" : {
"description" : "???",
"properties" : { },
"type" : "object"
},
"quotasEnabled" : {
"type" : "boolean",
"description" : "???"
},
"monthlyQuota" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"scopes" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"roles" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"throttlingQuota" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"dailyQuota" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"oidcConfigRef" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.plugins.geoloc.GeolocationInfoHeader" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.OIDCAccessTokenHeader" : {
"type" : "object",
"description" : "???",
"properties" : {
"send" : {
"type" : "boolean",
"description" : "???"
},
"name" : {
"type" : "string",
"description" : "???"
},
"header_name" : {
"type" : "string",
"description" : "???"
},
"jwt" : {
"type" : "boolean",
"description" : "???"
}
}
},
"otoroshi.models.NoneGeolocationSettings" : {
"type" : "object",
"description" : "No geolocation extraction",
"properties" : {
"type" : {
"type" : "string",
"enum" : [ "none" ]
}
}
},
"otoroshi.next.plugins.NgLog4ShellFilterConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"status" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"body" : {
"type" : "string",
"description" : "???"
},
"parse_body" : {
"type" : "boolean",
"description" : "???"
}
}
},
"otoroshi.next.plugins.GraphQLProxy" : {
"type" : "object",
"description" : "???",
"properties" : {
"max_complexity" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"schema" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"path" : {
"type" : "string",
"description" : "???"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"endpoint" : {
"type" : "string",
"description" : "???"
},
"max_depth" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgAuthModuleExpectedUserConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"only_from" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.next.models.NgPluginInstance" : {
"type" : "object",
"description" : "???",
"properties" : {
"instance_id" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"debug" : {
"type" : "boolean",
"description" : "???"
},
"config" : {
"type" : "object",
"description" : "???"
},
"exclude" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"plugin_index" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ ],
"properties" : { }
},
"include" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"plugin" : {
"type" : "string",
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgGeolocationInfoHeader" : {
"type" : "object",
"description" : "???",
"properties" : {
"header_name" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.next.plugins.ReactorResponse" : {
"type" : "object",
"description" : "???",
"properties" : {
"body" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.next.plugins.JQRequestConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"filter" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.plugins.hmac.HMACValidator" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.NgRestrictions" : {
"type" : "object",
"description" : "???",
"properties" : {
"allow_last" : {
"type" : "boolean",
"description" : "???"
},
"allowed" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"forbidden" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"not_found" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgHtmlPatcherConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"append_head" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"append_body" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"WebAuthnRegistrationStartBody" : {
"type" : "object",
"description" : ""
},
"PatchDocument" : {
"type" : "object",
"description" : "A JSONPatch document as defined by RFC 6902",
"required" : [ "op", "path" ],
"properties" : {
"op" : {
"type" : "string",
"description" : "The operation to be performed",
"enum" : [ "add", "remove", "replace", "move", "copy", "test" ]
},
"path" : {
"type" : "string",
"description" : "A JSON-Pointer"
},
"value" : {
"type" : "object",
"description" : "The value to be used within the operations."
},
"from" : {
"type" : "string",
"description" : "A string containing a JSON Pointer value."
}
}
},
"otoroshi.greenscore.Thresholds" : {
"type" : "object",
"description" : "???",
"properties" : {
"plugins" : {
"description" : "???",
"properties" : {
"excellent" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"sufficient" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"poor" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
},
"type" : "object"
},
"dataOut" : {
"description" : "???",
"properties" : {
"excellent" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"sufficient" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"poor" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
},
"type" : "object"
},
"headersOut" : {
"description" : "???",
"properties" : {
"excellent" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"sufficient" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"poor" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
},
"type" : "object"
}
}
},
"otoroshi.next.plugins.NgMirroringEvent" : {
"type" : "object",
"description" : "???",
"properties" : {
"ctx" : {
"description" : "???",
"properties" : {
"id" : {
"type" : "string",
"description" : "???"
},
"config" : {
"description" : "???",
"properties" : {
"legacy" : {
"description" : "???",
"properties" : {
"conf" : {
"type" : "object",
"description" : "???"
}
},
"type" : "object"
}
},
"type" : "object"
},
"route" : {
"description" : "???",
"properties" : {
"debug_flow" : {
"type" : "boolean",
"description" : "Enable report debugging"
},
"enabled" : {
"type" : "boolean",
"description" : "Is the route enabled"
},
"name" : {
"type" : "string",
"description" : "The name of the route"
},
"id" : {
"type" : "string",
"description" : "The ud of the route"
},
"export_reporting" : {
"type" : "boolean",
"description" : "Export the execution reporting through standard data exporter"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "The metadata of the route"
},
"frontend" : {
"description" : "The frontend of the route",
"properties" : {
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "the headers that will be matched"
},
"query" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "the query params that will be matched"
},
"domains" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "The domain and path that will be matched"
},
"methods" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "the http methods that will be matched"
},
"exact" : {
"type" : "boolean",
"description" : "Match on exact path ?"
},
"strip_path" : {
"type" : "boolean",
"description" : "Is path stripped from backend request"
}
},
"type" : "object"
},
"_loc" : {
"description" : "The location of the route",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "The tags of the route"
},
"capture" : {
"type" : "boolean",
"description" : "Capture http traffic"
},
"groups" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "The groups of the route"
},
"backend_ref" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"description" : {
"type" : "string",
"description" : "The description of the route"
},
"backend" : {
"description" : "The backend of the route",
"properties" : {
"root" : {
"type" : "string",
"description" : "The root path of the backend or the full rewrite path"
},
"health_check" : {
"description" : "???",
"type" : "object",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"url" : {
"type" : "string",
"description" : "???"
},
"timeout" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
}
},
"client" : {
"description" : "Client config. of the backend",
"properties" : {
"idle_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout on idle connection"
},
"sample_interval" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify the sliding window time for the circuit breaker in milliseconds, after this time, error count will be reseted"
},
"cache_connection_settings" : {
"description" : "Cached connection settings",
"properties" : {
"queue_size" : {
"type" : "integer",
"format" : "int32",
"description" : "How much request can be queue before dropping it"
},
"enabled" : {
"type" : "boolean",
"description" : "Is cached connection enabled"
}
},
"type" : "object"
},
"call_and_stream_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (hard timeout, connection will be closed after that duration)"
},
"custom_timeouts" : {
"type" : "array",
"items" : {
"properties" : {
"connection_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout at connection"
},
"call_and_stream_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (hard timeout, connection will be closed after that duration)"
},
"path" : {
"type" : "string",
"description" : "path on which this configuration works"
},
"call_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (soft timeout as it's enforced by the circuit breaker)"
},
"idle_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout on idle connection"
},
"global_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long the global call (with retries) should last at most in milliseconds"
}
},
"type" : "object"
},
"description" : "Custom timeouts per path"
},
"connection_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout at connection"
},
"call_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (soft timeout as it's enforced by the circuit breaker)"
},
"global_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long the global call (with retries) should last at most in milliseconds"
},
"retry_initial_delay" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify the delay between two retries. Each retry, the delay is multiplied by the backoff factor"
},
"backoff_factor" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify the factor to multiply the delay for each retry"
},
"proxy" : {
"description" : "Web proxy settings for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"retries" : {
"type" : "integer",
"format" : "int32",
"description" : "Specify how many times the client will try to fetch the result of the request after an error before giving up."
},
"max_errors" : {
"type" : "integer",
"format" : "int32",
"description" : "Specify how many errors can pass before opening the circuit breaker"
}
},
"type" : "object"
},
"load_balancing" : {
"description" : "Loadbalancing config og the backend",
"properties" : {
"type" : {
"type" : "string",
"enum" : [ "BestResponseTime", "IpAddressHash", "Random", "RoundRobin", "Sticky", "WeightedBestResponseTime" ]
},
"ratio" : {
"type" : "number",
"format" : "double"
}
},
"type" : "object"
},
"rewrite" : {
"type" : "boolean",
"description" : "Does the backend performs a full url rewrite ?"
},
"targets" : {
"type" : "array",
"items" : {
"properties" : {
"ip_address" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"protocol" : {
"type" : "string",
"enum" : [ "HTTP/1.0", "HTTP/1.1", "HTTP/2.0", "HTTP/3.0" ],
"description" : "Protocol for the target"
},
"predicate" : {
"description" : "Predicate to choose this target",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"dc" : {
"type" : "string",
"description" : "???"
},
"positions" : {
"type" : "array",
"items" : {
"properties" : {
"latitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"longitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"radius" : {
"type" : "number",
"format" : "double",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"provider" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataCenter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"rack" : {
"type" : "string",
"description" : "???"
},
"region" : {
"type" : "string",
"description" : "???"
},
"zone" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"tls_config" : {
"description" : "TLS settings to contact this target",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "Enabled"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
},
"loose" : {
"type" : "boolean",
"description" : "Loose verification"
},
"trust_all" : {
"type" : "boolean",
"description" : "Trust any certificate"
},
"trusted_certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
}
},
"type" : "object"
},
"tls" : {
"type" : "boolean",
"description" : "Does the target uses TLS"
},
"port" : {
"type" : "integer",
"format" : "int32",
"description" : "port of the target"
},
"id" : {
"type" : "string",
"description" : "id of the target"
},
"weight" : {
"type" : "integer",
"format" : "int32",
"description" : "The weight of the target when choosing"
},
"hostname" : {
"type" : "string",
"description" : "hostname of the target"
}
},
"type" : "object"
},
"description" : "The targets of the backend"
}
},
"type" : "object"
}
},
"type" : "object"
}
},
"type" : "object"
}
}
},
"otoroshi.next.plugins.SendOtoroshiHeadersBack" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.plugins.accesslog.AccessLogJson" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.models.Tenant" : {
"type" : "object",
"description" : "An otoroshi model for an organization (otoroshi-ui)",
"properties" : {
"description" : {
"type" : "string",
"description" : "Entity description"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Entity metadata"
},
"name" : {
"type" : "string",
"description" : "Entity name"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Entity tags"
},
"id" : {
"description" : "Entity id",
"type" : "string"
}
}
},
"otoroshi.models.BackOfficeUser" : {
"type" : "object",
"description" : "User session for otoroshi-ui admins",
"properties" : {
"randomId" : {
"type" : "string",
"description" : "Session user random id"
},
"profile" : {
"type" : "object",
"description" : "Session user profile"
},
"authConfigId" : {
"type" : "string",
"description" : "Session created from auth module id"
},
"rights" : {
"description" : "Session user rights",
"properties" : {
"rights" : {
"type" : "array",
"items" : {
"properties" : {
"tenant" : {
"description" : "Access rights on organizations",
"properties" : {
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
}
},
"type" : "object"
},
"teams" : {
"type" : "array",
"items" : {
"properties" : {
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
}
},
"type" : "object"
},
"description" : "Access rights on teams"
}
},
"type" : "object"
},
"description" : "Access rights of a user"
}
},
"type" : "object"
},
"createdAt" : {
"type" : "number",
"description" : "Creation date for the session"
},
"token" : {
"type" : "object",
"description" : "Session tokens (only if OAuth/OIDC)"
},
"name" : {
"type" : "string",
"description" : "Session user name"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Entity tags"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Entity metadata"
},
"email" : {
"type" : "string",
"description" : "User email"
},
"simpleLogin" : {
"type" : "boolean",
"description" : "Session generated from a simple login module (like basic or ldap)"
},
"expiredAt" : {
"type" : "number",
"description" : "Expiration date for the session"
},
"_loc" : {
"description" : "Entity location",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"lastRefresh" : {
"type" : "number",
"description" : "Last refresh of the session (OAuth with refresh tokens)"
}
}
},
"otoroshi.next.plugins.NgResponseCacheCleanupJob" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.NoopSpanExporter" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.models.GeolocationSettings" : {
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "enabled", "apikey", "timeout" ]
}, {
"required" : [ "type", "enabled", "path" ]
}, {
"required" : [ "type" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"enum" : [ "none" ]
},
"enabled" : {
"type" : "boolean",
"description" : "Geolocation using maxmind db enabled"
},
"apikey" : {
"type" : "string",
"description" : "IpStack apikey"
},
"timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "API call timeout"
},
"path" : {
"type" : "string",
"description" : "Maxmlind db file path"
}
}
},
"otoroshi.events.AlertEvent" : {
"type" : "object",
"description" : "Alert trail event"
},
"otoroshi.next.plugins.WasmRouteMatcher" : {
"type" : "object",
"description" : "???",
"properties" : {
"allowedHosts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"memoryPages" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"allowedPaths" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"instances" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"config" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"authorizations" : {
"description" : "???",
"properties" : {
"proxyStateAccess" : {
"type" : "boolean",
"description" : "???"
},
"httpAccess" : {
"type" : "boolean",
"description" : "???"
},
"globalMapAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"pluginDataStoreAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"pluginMapAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"proxyHttpCallTimeout" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"configurationAccess" : {
"type" : "boolean",
"description" : "???"
},
"globalDataStoreAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
}
},
"type" : "object"
},
"opa" : {
"type" : "boolean",
"description" : "???"
},
"wasi" : {
"type" : "boolean",
"description" : "???"
},
"functionName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.models.ApiDescriptor" : {
"type" : "object",
"description" : "???",
"properties" : {
"exposeApi" : {
"type" : "boolean",
"description" : "???"
},
"openApiDescriptorUrl" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.auth.SessionCookieValues" : {
"type" : "object",
"description" : "???",
"properties" : {
"httpOnly" : {
"type" : "boolean",
"description" : "???"
},
"secure" : {
"type" : "boolean",
"description" : "???"
}
}
},
"otoroshi.next.plugins.OAuth1CallerConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"token_secret" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"consumer_secret" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"algo" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"token" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"consumer_key" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.plugins.jobs.kubernetes.KubernetesIngressToDescriptor" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.NgLegacyAuthModuleCallConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"public_patterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"private_patterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"config" : {
"description" : "???",
"properties" : {
"module" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"pass_with_apikey" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
}
}
},
"otoroshi.next.plugins.RBAC" : {
"type" : "object",
"description" : "???",
"properties" : {
"roles" : {
"type" : "string",
"description" : "???"
},
"allow" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allow_all" : {
"type" : "boolean",
"description" : "???"
},
"role_prefix" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"jwt_path" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"apikey_path" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"deny" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"user_path" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"deny_all" : {
"type" : "boolean",
"description" : "???"
}
}
},
"otoroshi.utils.letsencrypt.LetsEncryptSettings" : {
"type" : "object",
"description" : "Settings for connection to a let's encrypt (or ACME) server",
"properties" : {
"privateKey" : {
"type" : "string",
"description" : "Let's encrypt (ACME) private key"
},
"contacts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Let's encrypt (ACME) contacts"
},
"emails" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Let's encrypt (ACME) contact emails"
},
"enabled" : {
"type" : "boolean",
"description" : "Let's encrypt (ACME) enabled"
},
"publicKey" : {
"type" : "string",
"description" : "Let's encrypt (ACME) public key"
},
"server" : {
"type" : "string",
"description" : "Let's encrypt (ACME) server"
}
}
},
"otoroshi.next.models.NgTlsConfig" : {
"type" : "object",
"description" : "TLS settings for the http client",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "Enabled"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
},
"loose" : {
"type" : "boolean",
"description" : "Loose verification"
},
"trust_all" : {
"type" : "boolean",
"description" : "Trust any certificate"
},
"trusted_certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
}
}
},
"otoroshi.next.plugins.NgBrotliConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"buffer_size" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"black_list" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"white_list" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"compression_level" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"chunked_threshold" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgResponseCacheConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"ttl" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"max_size" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"auto_clean" : {
"type" : "boolean",
"description" : "???"
},
"filter" : {
"description" : "???",
"type" : "object",
"properties" : {
"paths" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"methods" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"not_methods" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"not_paths" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
}
}
},
"otoroshi.models.ApiKeyRouteMatcher" : {
"type" : "object",
"description" : "???",
"properties" : {
"oneTagIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"noneMetaKeysIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"oneMetaIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"oneMetaKeyIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allMetaKeysIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"noneTagIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allTagsIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allMetaIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"noneMetaIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.next.plugins.SOAPAction" : {
"type" : "object",
"description" : "???",
"properties" : {
"jq_response_filter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"jq_request_filter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"preserve_query" : {
"type" : "boolean",
"description" : "???"
},
"convert_request_body_to_xml" : {
"type" : "boolean",
"description" : "???"
},
"charset" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"url" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"action" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"envelope" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.next.models.StoredNgBackendDataStore" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.NgApikeyExtractorJwt" : {
"type" : "object",
"description" : "???",
"properties" : {
"cookie_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"key_pair_signed" : {
"type" : "boolean",
"description" : "???"
},
"query_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"secret_signed" : {
"type" : "boolean",
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"include_request_attrs" : {
"type" : "boolean",
"description" : "???"
},
"header_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.models.Outage" : {
"type" : "object",
"description" : "???",
"properties" : {
"descriptorName" : {
"type" : "string",
"description" : "???"
},
"descriptorId" : {
"type" : "string",
"description" : "???"
},
"until" : {
"type" : "string",
"description" : "???"
},
"duration" : {
"type" : "number",
"description" : "???"
},
"startedAt" : {
"type" : "number",
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgBiscuitExtractor" : {
"type" : "object",
"description" : "???",
"properties" : {
"legacy" : {
"description" : "???",
"properties" : {
"facts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"publicKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"resources" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"enforce" : {
"type" : "boolean",
"description" : "???"
},
"extractorName" : {
"type" : "string",
"description" : "???"
},
"checks" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"extractor" : {
"type" : "string",
"description" : "???"
},
"revocation_ids" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"rules" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
}
}
},
"otoroshi.utils.JsonPathValidator" : {
"type" : "object",
"description" : "???",
"properties" : {
"path" : {
"type" : "string",
"description" : "???"
},
"value" : {
"type" : "object",
"description" : "???"
},
"error" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.next.plugins.OAuth2CallerConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"cache_token_seconds" : {
"type" : "number",
"description" : "???"
},
"client_id" : {
"type" : "string",
"description" : "???"
},
"client_secret" : {
"type" : "string",
"description" : "???"
},
"scope" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"password" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"header_name" : {
"type" : "string",
"description" : "???"
},
"method" : {
"type" : "string",
"description" : "???"
},
"user" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"kind" : {
"description" : "The kind of oauth2 flow",
"type" : "string",
"enum" : [ "client_credentials", "password" ]
},
"header_value_format" : {
"type" : "string",
"description" : "???"
},
"json_payload" : {
"type" : "boolean",
"description" : "???"
},
"audience" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"url" : {
"type" : "string",
"description" : "???"
},
"tls_config" : {
"description" : "???",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
}
}
},
"otoroshi.next.plugins.XForwardedHeaders" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.models.GoReplayS3Settings" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of exporter",
"enum" : [ "elastic", "webhook", "kafka", "pulsar", "file", "mailer", "custom", "console", "metrics" ]
},
"s3" : {
"description" : "???",
"properties" : {
"writeEvery" : {
"type" : "number",
"description" : "Write every n milliseconds"
},
"chunkSize" : {
"type" : "integer",
"format" : "int32",
"description" : "Upload chunk max size"
},
"bucket" : {
"type" : "string",
"description" : "Bucket name"
},
"key" : {
"type" : "string",
"description" : "File path in bucket"
},
"endpoint" : {
"type" : "string",
"description" : "Bucket endpoint"
},
"v4auth" : {
"type" : "boolean",
"description" : "Use V4 auth"
},
"access" : {
"type" : "string",
"description" : "Bucket access key"
},
"secret" : {
"type" : "string",
"description" : "Bucket access secret"
},
"region" : {
"type" : "string",
"description" : "Bucket region"
}
},
"type" : "object"
},
"methods" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"captureResponses" : {
"type" : "boolean",
"description" : "???"
},
"preferBackendResponse" : {
"type" : "boolean",
"description" : "???"
},
"maxFileSize" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"captureRequests" : {
"type" : "boolean",
"description" : "???"
},
"preferBackendRequest" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object",
"description" : "???"
},
"otoroshi.utils.ConcurrentMutableTypedMap" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.plugins.biscuit.PubKeyBiscuitToken" : {
"type" : "object",
"description" : "???",
"properties" : {
"token" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgIzanamiV1CanaryRoutingConfigRoute" : {
"type" : "object",
"description" : "???",
"properties" : {
"regex" : {
"type" : "boolean",
"description" : "???"
},
"default" : {
"type" : "string",
"description" : "???"
},
"route" : {
"type" : "string",
"description" : "???"
},
"wildcard" : {
"type" : "boolean",
"description" : "???"
},
"exact" : {
"type" : "boolean",
"description" : "???"
},
"variants" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.next.plugins.BiscuitConf" : {
"type" : "object",
"description" : "???",
"properties" : {
"privkey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"checks" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"facts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"rules" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgClientCertChainHeaderConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"dns_header_name" : {
"type" : "string",
"description" : "???"
},
"pem_header_name" : {
"type" : "string",
"description" : "???"
},
"send_pem" : {
"type" : "boolean",
"description" : "???"
},
"send_chain" : {
"type" : "boolean",
"description" : "???"
},
"send_dns" : {
"type" : "boolean",
"description" : "???"
},
"chain_header_name" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.next.plugins.EurekaInstance" : {
"type" : "object",
"description" : "???",
"properties" : {
"hostname" : {
"type" : "string",
"description" : "???"
},
"vip_address" : {
"type" : "string",
"description" : "???"
},
"home_page_url" : {
"type" : "string",
"description" : "???"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"last_dirty_timestamp" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"is_secured" : {
"type" : "boolean",
"description" : "???"
},
"ip_addr" : {
"type" : "string",
"description" : "???"
},
"last_updated_timestamp" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"app" : {
"type" : "string",
"description" : "???"
},
"overridden_status" : {
"type" : "string",
"description" : "???"
},
"status_page_url" : {
"type" : "string",
"description" : "???"
},
"is_coordinating_discovery_server" : {
"type" : "string",
"description" : "???"
},
"instance_id" : {
"type" : "string",
"description" : "???"
},
"secure_vip_address" : {
"type" : "string",
"description" : "???"
},
"status" : {
"type" : "string",
"description" : "???"
},
"port" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"secure_port" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"health_check_url" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgResponseCacheFilterConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"paths" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"methods" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"not_methods" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"not_paths" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.greenscore.GreenScoreEntity" : {
"type" : "object",
"description" : "???",
"properties" : {
"routes" : {
"type" : "array",
"items" : {
"properties" : {
"routeId" : {
"type" : "string",
"description" : "???"
},
"rulesConfig" : {
"description" : "???",
"properties" : {
"sections" : {
"type" : "array",
"items" : {
"properties" : {
"id" : {
"description" : "???",
"properties" : {
"value" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"rules" : {
"type" : "array",
"items" : {
"properties" : {
"sectionWeight" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"advice" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"weight" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"id" : {
"description" : "???",
"properties" : {
"value" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"thresholds" : {
"description" : "???",
"properties" : {
"plugins" : {
"description" : "???",
"properties" : {
"excellent" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"sufficient" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"poor" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
},
"type" : "object"
},
"dataOut" : {
"description" : "???",
"properties" : {
"excellent" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"sufficient" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"poor" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
},
"type" : "object"
},
"headersOut" : {
"description" : "???",
"properties" : {
"excellent" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"sufficient" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"poor" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
},
"type" : "object"
}
},
"type" : "object"
}
},
"type" : "object"
}
},
"type" : "object"
},
"description" : "???"
},
"id" : {
"type" : "string",
"description" : "???"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"description" : {
"type" : "string",
"description" : "???"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"name" : {
"type" : "string",
"description" : "???"
},
"_loc" : {
"description" : "???",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
}
}
},
"otoroshi.utils.mailer.SendgridSettings" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of exporter",
"enum" : [ "elastic", "webhook", "kafka", "pulsar", "file", "mailer", "custom", "console", "metrics" ]
},
"apiKey" : {
"type" : "string",
"description" : "Sendgrid apikey"
},
"to" : {
"type" : "array",
"items" : {
"properties" : {
"name" : {
"type" : "string",
"description" : "Destination name"
},
"email" : {
"type" : "string",
"description" : "Email address"
}
},
"type" : "object"
},
"description" : "Destination email address"
}
},
"type" : "object",
"description" : "Settings for the sendgrid mailer"
},
"otoroshi.gateway.CircuitBreakersHolder" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.NgAuthModuleConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"module" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"pass_with_apikey" : {
"type" : "boolean",
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgChaosConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"large_request_fault_config" : {
"description" : "???",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"additional_request_size" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
}
},
"large_response_fault_config" : {
"description" : "???",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"additional_response_size" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
}
},
"latency_injection_fault_config" : {
"description" : "???",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"from" : {
"type" : "number",
"description" : "???"
},
"to" : {
"type" : "number",
"description" : "???"
}
}
},
"bad_responses_fault_config" : {
"description" : "???",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"responses" : {
"type" : "array",
"items" : {
"properties" : {
"status" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"body" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
}
}
}
}
},
"ByteStreamBody" : {
"type" : "string",
"description" : ""
},
"play.api.libs.ws.DefaultWSProxyServer" : {
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
},
"description" : "Proxy server"
},
"otoroshi.plugins.loggers.BodyLogger" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.NgIzanamiV1Proxy" : {
"type" : "object",
"description" : "???",
"properties" : {
"features_enabled" : {
"type" : "boolean",
"description" : "???"
},
"client_secret" : {
"type" : "string",
"description" : "???"
},
"features_with_context_enabled" : {
"type" : "boolean",
"description" : "???"
},
"config_pattern" : {
"type" : "string",
"description" : "???"
},
"feature_pattern" : {
"type" : "string",
"description" : "???"
},
"client_id" : {
"type" : "string",
"description" : "???"
},
"tls" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "Enabled"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
},
"loose" : {
"type" : "boolean",
"description" : "Loose verification"
},
"trust_all" : {
"type" : "boolean",
"description" : "Trust any certificate"
},
"trusted_certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
}
},
"type" : "object"
},
"izanami_url" : {
"type" : "string",
"description" : "???"
},
"timeout" : {
"type" : "number",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
},
"auto_context" : {
"type" : "boolean",
"description" : "???"
},
"configuration_enabled" : {
"type" : "boolean",
"description" : "???"
}
}
},
"otoroshi.plugins.biscuit.AccessValidatorContext" : {
"type" : "object",
"description" : "???",
"properties" : {
"ctx" : {
"description" : "???",
"properties" : {
"attrs" : {
"description" : "???",
"properties" : { },
"type" : "object"
},
"config" : {
"type" : "object",
"description" : "???"
},
"descriptor" : {
"description" : "???",
"properties" : {
"buildMode" : {
"type" : "boolean",
"description" : "???"
},
"hosts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"privateApp" : {
"type" : "boolean",
"description" : "???"
},
"localScheme" : {
"type" : "string",
"description" : "???"
},
"authConfigRef" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"issueCertCA" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"root" : {
"type" : "string",
"description" : "???"
},
"name" : {
"type" : "string",
"description" : "???"
},
"additionalHeaders" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"domain" : {
"type" : "string",
"description" : "???"
},
"clientConfig" : {
"description" : "???",
"properties" : {
"connectionTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"useCircuitBreaker" : {
"type" : "boolean",
"description" : "???"
},
"retryInitialDelay" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"cacheConnectionSettings" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"queueSize" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
},
"type" : "object"
},
"proxy" : {
"description" : "???",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"callTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"callAndStreamTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"globalTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"maxErrors" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"retries" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"backoffFactor" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"customTimeouts" : {
"type" : "array",
"items" : {
"properties" : {
"path" : {
"type" : "string",
"description" : "???"
},
"callAndStreamTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"callTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"idleTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"globalTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"connectionTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"idleTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"sampleInterval" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
}
},
"type" : "object"
},
"matchingRoot" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"forceHttps" : {
"type" : "boolean",
"description" : "???"
},
"localHost" : {
"type" : "string",
"description" : "???"
},
"sendOtoroshiHeadersBack" : {
"type" : "boolean",
"description" : "???"
},
"healthCheck" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"url" : {
"type" : "string",
"description" : "???"
},
"timeout" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
},
"type" : "object"
},
"strictlyPrivate" : {
"type" : "boolean",
"description" : "???"
},
"detectApiKeySooner" : {
"type" : "boolean",
"description" : "???"
},
"allowHttp10" : {
"type" : "boolean",
"description" : "???"
},
"subdomain" : {
"type" : "string",
"description" : "???"
},
"paths" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"stripPath" : {
"type" : "boolean",
"description" : "???"
},
"secComAlgoChallengeOtoToBack" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
},
"type" : "object"
},
"apiKeyConstraints" : {
"description" : "???",
"properties" : {
"customHeadersAuth" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"clientIdHeaderName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"clientSecretHeaderName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"routing" : {
"description" : "???",
"properties" : {
"oneTagIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"noneMetaKeysIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"oneMetaIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"oneMetaKeyIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allMetaKeysIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"noneTagIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allTagsIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allMetaIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"noneMetaIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"clientIdAuth" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"headerName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"queryName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"jwtAuth" : {
"description" : "???",
"properties" : {
"keyPairSigned" : {
"type" : "boolean",
"description" : "???"
},
"cookieName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"queryName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"headerName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"secretSigned" : {
"type" : "boolean",
"description" : "???"
},
"maxJwtLifespanSecs" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"includeRequestAttributes" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"basicAuth" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"headerName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"queryName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
}
},
"type" : "object"
},
"env" : {
"type" : "string",
"description" : "???"
},
"xForwardedHeaders" : {
"type" : "boolean",
"description" : "???"
},
"transformerRefs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"gzip" : {
"description" : "???",
"properties" : {
"compressionLevel" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"blackList" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"chunkedThreshold" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"bufferSize" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"whiteList" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"sendInfoToken" : {
"type" : "boolean",
"description" : "???"
},
"tcpUdpTunneling" : {
"type" : "boolean",
"description" : "???"
},
"removeHeadersOut" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"useAkkaHttpClient" : {
"type" : "boolean",
"description" : "???"
},
"maintenanceMode" : {
"type" : "boolean",
"description" : "???"
},
"id" : {
"type" : "string",
"description" : "???"
},
"removeHeadersIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"logAnalyticsOnServer" : {
"type" : "boolean",
"description" : "???"
},
"secComAlgoInfoToken" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
},
"type" : "object"
},
"userFacing" : {
"type" : "boolean",
"description" : "???"
},
"transformerConfig" : {
"type" : "object",
"description" : "???"
},
"clientValidatorRef" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"securityExcludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"ipFiltering" : {
"description" : "???",
"properties" : {
"whitelist" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"blacklist" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"targets" : {
"type" : "array",
"items" : {
"properties" : {
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"host" : {
"type" : "string",
"description" : "???"
},
"weight" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"protocol" : {
"type" : "string",
"enum" : [ "HTTP/1.0", "HTTP/1.1", "HTTP/2.0", "HTTP/3.0" ],
"description" : "???"
},
"predicate" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"dc" : {
"type" : "string",
"description" : "???"
},
"positions" : {
"type" : "array",
"items" : {
"properties" : {
"latitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"longitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"radius" : {
"type" : "number",
"format" : "double",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"provider" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataCenter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"rack" : {
"type" : "string",
"description" : "???"
},
"region" : {
"type" : "string",
"description" : "???"
},
"zone" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"ipAddress" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"mtlsConfig" : {
"description" : "???",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"scheme" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"redirection" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"code" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"to" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"restrictions" : {
"description" : "???",
"properties" : {
"forbidden" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"allowed" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"notFound" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"allowLast" : {
"type" : "boolean",
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"overrideHost" : {
"type" : "boolean",
"description" : "???"
},
"accessValidator" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"refs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"config" : {
"type" : "object",
"description" : "???"
}
},
"type" : "object"
},
"sendStateChallenge" : {
"type" : "boolean",
"description" : "???"
},
"chaosConfig" : {
"description" : "???",
"properties" : {
"badResponsesFaultConfig" : {
"description" : "Settings for bad responses",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"responses" : {
"type" : "array",
"items" : {
"properties" : {
"status" : {
"type" : "integer",
"format" : "int32",
"description" : "The HTTP status for the response"
},
"body" : {
"type" : "string",
"description" : "The body of the HTTP response"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "The HTTP headers of the response"
}
},
"type" : "object"
},
"description" : "The possibles responses"
}
}
},
"largeRequestFaultConfig" : {
"description" : "Settings for large requests",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"additionalRequestSize" : {
"type" : "integer",
"format" : "int32",
"description" : "The size added to the request body in bytes. Added payload will be spaces only."
}
}
},
"largeResponseFaultConfig" : {
"description" : "Settings for large responses",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"additionalResponseSize" : {
"type" : "integer",
"format" : "int32",
"description" : "Add n 0 bytes"
}
}
},
"latencyInjectionFaultConfig" : {
"description" : "Settings for latency injection",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"from" : {
"type" : "number",
"description" : "The start range of latency added to the request"
},
"to" : {
"type" : "number",
"description" : "The end range of latency added to the request"
}
}
},
"enabled" : {
"type" : "boolean",
"description" : "Whether or not this config is enabled"
}
},
"type" : "object"
},
"secComInfoTokenVersion" : {
"description" : "Version of the info token",
"type" : "string",
"enum" : [ "Legacy", "Latest" ]
},
"additionalHeadersOut" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"secComHeaders" : {
"description" : "???",
"properties" : {
"claimRequestName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"stateRequestName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"stateResponseName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"matchingHeaders" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"secComAlgoChallengeBackToOto" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
},
"type" : "object"
},
"secComUseSameAlgo" : {
"type" : "boolean",
"description" : "???"
},
"useNewWSClient" : {
"type" : "boolean",
"description" : "???"
},
"secComExcludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"redirectToLocal" : {
"type" : "boolean",
"description" : "???"
},
"enforceSecureCommunication" : {
"type" : "boolean",
"description" : "???"
},
"missingOnlyHeadersOut" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"secComSettings" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
},
"type" : "object"
},
"handleLegacyDomain" : {
"type" : "boolean",
"description" : "???"
},
"canary" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"traffic" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"targets" : {
"type" : "array",
"items" : {
"properties" : {
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"host" : {
"type" : "string",
"description" : "???"
},
"weight" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"protocol" : {
"type" : "string",
"enum" : [ "HTTP/1.0", "HTTP/1.1", "HTTP/2.0", "HTTP/3.0" ],
"description" : "???"
},
"predicate" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"dc" : {
"type" : "string",
"description" : "???"
},
"positions" : {
"type" : "array",
"items" : {
"properties" : {
"latitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"longitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"radius" : {
"type" : "number",
"format" : "double",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"provider" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataCenter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"rack" : {
"type" : "string",
"description" : "???"
},
"region" : {
"type" : "string",
"description" : "???"
},
"zone" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"ipAddress" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"mtlsConfig" : {
"description" : "???",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"scheme" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"root" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"_loc" : {
"description" : "???",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"plugins" : {
"description" : "???",
"properties" : {
"config" : {
"type" : "object",
"description" : "Plugins configuration"
},
"enabled" : {
"type" : "boolean",
"description" : "Plugins enabled"
},
"excluded" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Excluded paths"
},
"refs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Enabled plugins"
}
},
"type" : "object"
},
"secComTtl" : {
"type" : "number",
"description" : "???"
},
"description" : {
"type" : "string",
"description" : "???"
},
"secComVersion" : {
"description" : "Version of the challenge token",
"type" : "string",
"enum" : [ "V1", "v2" ]
},
"preRouting" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"refs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"config" : {
"type" : "object",
"description" : "???"
}
},
"type" : "object"
},
"groups" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"readOnly" : {
"type" : "boolean",
"description" : "???"
},
"privatePatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"targetsLoadBalancing" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"enum" : [ "BestResponseTime", "IpAddressHash", "Random", "RoundRobin", "Sticky", "WeightedBestResponseTime" ]
},
"ratio" : {
"type" : "number",
"format" : "double"
}
},
"type" : "object"
},
"cors" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"allowCredentials" : {
"type" : "boolean",
"description" : "???"
},
"maxAge" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"allowMethods" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allowHeaders" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"exposeHeaders" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allowOrigin" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"publicPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"api" : {
"description" : "???",
"properties" : {
"exposeApi" : {
"type" : "boolean",
"description" : "???"
},
"openApiDescriptorUrl" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"missingOnlyHeadersIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"issueCert" : {
"type" : "boolean",
"description" : "???"
},
"headersVerification" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"jwtVerifier" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of verifier",
"enum" : [ "global", "local", "ref" ]
},
"desc" : {
"type" : "string",
"description" : "Verifier description"
},
"name" : {
"type" : "string",
"description" : "Verifier name"
},
"strict" : {
"type" : "boolean",
"description" : "???"
},
"source" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "name" ]
}, {
"required" : [ "type", "name", "remove" ]
}, {
"required" : [ "type", "name" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of location",
"enum" : [ "InQueryParam", "InHeader", "InCookie" ]
},
"name" : {
"type" : "string",
"description" : "Query param name"
},
"remove" : {
"type" : "string",
"description" : "Remove from value"
}
}
},
"algoSettings" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
},
"type" : "object"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Entity tags"
},
"id" : {
"type" : "string",
"description" : "Verifier id"
},
"_loc" : {
"description" : "Entity location",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"strategy" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "strict", "token", "verificationSettings" ]
}, {
"required" : [ "type", "verificationSettings" ]
}, {
"required" : [ "type", "verificationSettings", "algoSettings" ]
}, {
"required" : [ "type", "verificationSettings", "transformSettings", "algoSettings" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of strategy",
"enum" : [ "PassThrough", "Sign", "Transform", "DefaultToken" ]
},
"strict" : {
"type" : "boolean",
"description" : "If the token already exists in the request, then fail"
},
"token" : {
"type" : "object",
"description" : "The default token"
},
"verificationSettings" : {
"description" : "Verification settings",
"properties" : {
"fields" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Fields validation"
},
"arrayFields" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Fields array validation"
}
},
"type" : "object"
},
"algoSettings" : {
"description" : "Algorithm settings for re-signing token",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "size", "publicKey", "privateKey" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "secret", "base64" ]
}, {
"required" : [ "type", "url", "tlsConfig", "kty", "proxy", "headers", "ttl", "timeout" ]
}, {
"required" : [ "type", "onlyExposedCerts" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "publicKey", "privateKey" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
}
},
"transformSettings" : {
"description" : "Transformation settings",
"properties" : {
"location" : {
"description" : "Location of the token",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of location",
"enum" : [ "InQueryParam", "InHeader", "InCookie" ]
},
"name" : {
"type" : "string",
"description" : "Query param name"
},
"remove" : {
"type" : "string",
"description" : "Remove from value"
}
},
"type" : "object"
},
"mappingSettings" : {
"description" : "Token mapping settings",
"properties" : {
"map" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Change values"
},
"values" : {
"type" : "object",
"description" : "Add values"
},
"remove" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Remove some token claims"
}
},
"type" : "object"
}
},
"type" : "object"
}
}
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Entity metadata"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"ids" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"letsEncrypt" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"index" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"globalConfig" : {
"type" : "object",
"description" : "???"
},
"apikey" : {
"description" : "???",
"type" : "object",
"properties" : {
"dailyQuota" : {
"type" : "integer",
"format" : "int64",
"description" : "Authorized number of calls per day"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Bunch of metadata for the key"
},
"throttlingQuota" : {
"type" : "integer",
"format" : "int64",
"description" : "Authorized number of calls per second, measured on 10 seconds"
},
"constrainedServicesOnly" : {
"type" : "boolean",
"description" : "This apikey can only be used on services that constrained their apikey routing"
},
"allowClientIdOnly" : {
"type" : "boolean",
"description" : "This apikey can be used juste with the client_id value"
},
"_loc" : {
"description" : "The location of the apikey",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"restrictions" : {
"description" : "Apikey restrictions settings",
"properties" : {
"forbidden" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"allowed" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"notFound" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"allowLast" : {
"type" : "boolean",
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Apikey tags"
},
"enabled" : {
"type" : "boolean",
"description" : "Whether or not the key is enabled. If disabled, resources won't be available to calls using this key"
},
"readOnly" : {
"type" : "boolean",
"description" : "The apikey only allow access for GET, HEAD and OPTIONS verbs"
},
"clientSecret" : {
"type" : "string",
"description" : "The secret of the Api Key. Usually 64 random alpha numerical characters, but can be anything"
},
"validUntil" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"clientName" : {
"type" : "string",
"description" : "The name of the api key, for humans ;-)"
},
"monthlyQuota" : {
"type" : "integer",
"format" : "int64",
"description" : "Authorized number of calls per month"
},
"description" : {
"type" : "string",
"description" : "Description of this apikey"
},
"rotation" : {
"description" : "Apikey rotation settings",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "Rotation enabled"
},
"rotationEvery" : {
"type" : "integer",
"format" : "int64",
"description" : "Rotate every n hours"
},
"gracePeriod" : {
"type" : "integer",
"format" : "int64",
"description" : "period (in hours) during which both secrets works"
},
"nextSecret" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"authorizedEntities" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "The group/service ids (prefixed by group_ or service_ on which the key is authorized"
},
"clientId" : {
"type" : "string",
"description" : "The unique id of the Api Key. Usually 16 random alpha numerical characters, but can be anything"
}
}
},
"snowflake" : {
"type" : "string",
"description" : "???"
},
"user" : {
"description" : "???",
"type" : "object",
"properties" : {
"realm" : {
"type" : "string",
"description" : "Session realm name"
},
"token" : {
"type" : "object",
"description" : "Session tokens (from OAuth)"
},
"expiredAt" : {
"type" : "number",
"description" : "Session expiration date"
},
"profile" : {
"type" : "object",
"description" : "Session user profile"
},
"lastRefresh" : {
"type" : "number",
"description" : "Session last refresh (if OAuth refresh_token supported)"
},
"randomId" : {
"type" : "string",
"description" : "Session random id"
},
"email" : {
"type" : "string",
"description" : "Session user email"
},
"createdAt" : {
"type" : "number",
"description" : "Creation date of the session"
},
"_loc" : {
"description" : "Entity location",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"authConfigId" : {
"type" : "string",
"description" : "Auth module id that created the session"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Entity tags"
},
"name" : {
"type" : "string",
"description" : "Entity name"
},
"otoroshiData" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Entity metadata"
}
}
}
},
"type" : "object"
}
}
},
"otoroshi.next.plugins.MockResponse" : {
"type" : "object",
"description" : "???",
"properties" : {
"path" : {
"type" : "string",
"description" : "???"
},
"body" : {
"type" : "string",
"description" : "???"
},
"status" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"method" : {
"type" : "string",
"description" : "???"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
}
}
},
"PemCertificateBody" : {
"type" : "string",
"description" : "PEM encoded certificate"
},
"otoroshi.next.plugins.GlobalMaintenanceMode" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.models.LargeRequestFaultConfig" : {
"type" : "object",
"description" : "Settings for a large request fault (chaos engineering)",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"additionalRequestSize" : {
"type" : "integer",
"format" : "int32",
"description" : "The size added to the request body in bytes. Added payload will be spaces only."
}
}
},
"otoroshi.next.models.NgBackend" : {
"type" : "object",
"description" : "A backend representation with it's targets, load balancing and general settings",
"properties" : {
"root" : {
"type" : "string",
"description" : "The root path of the backend or the full rewrite path"
},
"health_check" : {
"description" : "???",
"type" : "object",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"url" : {
"type" : "string",
"description" : "???"
},
"timeout" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
}
},
"client" : {
"description" : "Client config. of the backend",
"properties" : {
"idle_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout on idle connection"
},
"sample_interval" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify the sliding window time for the circuit breaker in milliseconds, after this time, error count will be reseted"
},
"cache_connection_settings" : {
"description" : "Cached connection settings",
"properties" : {
"queue_size" : {
"type" : "integer",
"format" : "int32",
"description" : "How much request can be queue before dropping it"
},
"enabled" : {
"type" : "boolean",
"description" : "Is cached connection enabled"
}
},
"type" : "object"
},
"call_and_stream_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (hard timeout, connection will be closed after that duration)"
},
"custom_timeouts" : {
"type" : "array",
"items" : {
"properties" : {
"connection_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout at connection"
},
"call_and_stream_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (hard timeout, connection will be closed after that duration)"
},
"path" : {
"type" : "string",
"description" : "path on which this configuration works"
},
"call_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (soft timeout as it's enforced by the circuit breaker)"
},
"idle_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout on idle connection"
},
"global_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long the global call (with retries) should last at most in milliseconds"
}
},
"type" : "object"
},
"description" : "Custom timeouts per path"
},
"connection_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout at connection"
},
"call_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (soft timeout as it's enforced by the circuit breaker)"
},
"global_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long the global call (with retries) should last at most in milliseconds"
},
"retry_initial_delay" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify the delay between two retries. Each retry, the delay is multiplied by the backoff factor"
},
"backoff_factor" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify the factor to multiply the delay for each retry"
},
"proxy" : {
"description" : "Web proxy settings for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"retries" : {
"type" : "integer",
"format" : "int32",
"description" : "Specify how many times the client will try to fetch the result of the request after an error before giving up."
},
"max_errors" : {
"type" : "integer",
"format" : "int32",
"description" : "Specify how many errors can pass before opening the circuit breaker"
}
},
"type" : "object"
},
"load_balancing" : {
"description" : "Loadbalancing config og the backend",
"properties" : {
"type" : {
"type" : "string",
"enum" : [ "BestResponseTime", "IpAddressHash", "Random", "RoundRobin", "Sticky", "WeightedBestResponseTime" ]
},
"ratio" : {
"type" : "number",
"format" : "double"
}
},
"type" : "object"
},
"rewrite" : {
"type" : "boolean",
"description" : "Does the backend performs a full url rewrite ?"
},
"targets" : {
"type" : "array",
"items" : {
"properties" : {
"ip_address" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"protocol" : {
"type" : "string",
"enum" : [ "HTTP/1.0", "HTTP/1.1", "HTTP/2.0", "HTTP/3.0" ],
"description" : "Protocol for the target"
},
"predicate" : {
"description" : "Predicate to choose this target",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"dc" : {
"type" : "string",
"description" : "???"
},
"positions" : {
"type" : "array",
"items" : {
"properties" : {
"latitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"longitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"radius" : {
"type" : "number",
"format" : "double",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"provider" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataCenter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"rack" : {
"type" : "string",
"description" : "???"
},
"region" : {
"type" : "string",
"description" : "???"
},
"zone" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"tls_config" : {
"description" : "TLS settings to contact this target",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "Enabled"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
},
"loose" : {
"type" : "boolean",
"description" : "Loose verification"
},
"trust_all" : {
"type" : "boolean",
"description" : "Trust any certificate"
},
"trusted_certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
}
},
"type" : "object"
},
"tls" : {
"type" : "boolean",
"description" : "Does the target uses TLS"
},
"port" : {
"type" : "integer",
"format" : "int32",
"description" : "port of the target"
},
"id" : {
"type" : "string",
"description" : "id of the target"
},
"weight" : {
"type" : "integer",
"format" : "int32",
"description" : "The weight of the target when choosing"
},
"hostname" : {
"type" : "string",
"description" : "hostname of the target"
}
},
"type" : "object"
},
"description" : "The targets of the backend"
}
}
},
"ExperimentalFormResponse" : {
"type" : "object",
"description" : "The representation of a form to configure a plugin or an entity"
},
"otoroshi.next.plugins.NgApikeyExtractorClientId" : {
"type" : "object",
"description" : "???",
"properties" : {
"header_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"query_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"enabled" : {
"type" : "boolean",
"description" : "???"
}
}
},
"otoroshi.next.plugins.AttrsHelper" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"OutagesList" : {
"type" : "array",
"items" : {
"properties" : {
"descriptorName" : {
"type" : "string",
"description" : "???"
},
"descriptorId" : {
"type" : "string",
"description" : "???"
},
"until" : {
"type" : "string",
"description" : "???"
},
"duration" : {
"type" : "number",
"description" : "???"
},
"startedAt" : {
"type" : "number",
"description" : "???"
}
},
"type" : "object"
}
},
"otoroshi.plugins.mirror.MirroringPluginConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"conf" : {
"type" : "object",
"description" : "???"
}
}
},
"PluginDescriptionsResponse" : {
"type" : "array",
"items" : { }
},
"otoroshi.next.plugins.NgSecurityTxtConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"preferred_languages" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"encryption" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"policy" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"acknowledgments" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"hiring" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"contact" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.script.PreRoutingRef" : {
"type" : "object",
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"refs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"config" : {
"type" : "object",
"description" : "???"
}
}
},
"otoroshi.plugins.biscuit.BiscuitConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"facts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"publicKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"resources" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"enforce" : {
"type" : "boolean",
"description" : "???"
},
"extractorName" : {
"type" : "string",
"description" : "???"
},
"checks" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"extractor" : {
"type" : "string",
"description" : "???"
},
"revocation_ids" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"rules" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgJwtVerificationConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"verifiers" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.next.plugins.W3CTracingConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"kind" : {
"description" : "Configuration for W3CTracing",
"type" : "string",
"enum" : [ "jaeger", "zipkin", "logger", "noop" ]
},
"endpoint" : {
"type" : "string",
"description" : "???"
},
"timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"baggage" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.next.plugins.ErrorRewriteReport" : {
"type" : "object",
"description" : "???",
"properties" : {
"raw_response" : {
"description" : "???",
"properties" : { },
"type" : "object"
},
"response" : {
"description" : "???",
"properties" : { },
"type" : "object"
},
"response_body" : {
"type" : "string",
"description" : "???"
},
"id" : {
"type" : "string",
"description" : "???"
},
"raw_response_body" : {
"type" : "string",
"description" : "???"
},
"request" : {
"description" : "???",
"properties" : { },
"type" : "object"
}
}
},
"otoroshi.plugins.AttributeSetter" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.AuthorisationException" : {
"type" : "object",
"description" : "???",
"properties" : {
"message" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.next.models.NgCacheConnectionSettings" : {
"type" : "object",
"description" : "The settings for http cached connection at host level",
"properties" : {
"queue_size" : {
"type" : "integer",
"format" : "int32",
"description" : "How much request can be queue before dropping it"
},
"enabled" : {
"type" : "boolean",
"description" : "Is cached connection enabled"
}
}
},
"otoroshi.plugins.geoloc.IpStackGeolocationHelper" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.models.DataExporterConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"desc" : {
"type" : "string",
"description" : "???"
},
"_loc" : {
"description" : "???",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"bufferSize" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"jsonWorkers" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"groupDuration" : {
"type" : "number",
"description" : "???"
},
"groupSize" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"type" : {
"description" : "Type of data exporter",
"type" : "string",
"enum" : [ "kafka", "pulsar", "elastic", "webhook", "file", "mailer", "custom", "none", "console", "metrics" ]
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"sendWorkers" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"id" : {
"type" : "string",
"description" : "???"
},
"name" : {
"type" : "string",
"description" : "???"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"config" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of exporter",
"enum" : [ "elastic", "webhook", "kafka", "pulsar", "file", "mailer", "custom", "console", "metrics" ]
},
"sendEvents" : {
"type" : "boolean",
"description" : "Send events to it, or just connect"
},
"truststore" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"hostValidation" : {
"type" : "boolean",
"description" : "Enabled TLS hostname validation"
},
"servers" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "URLs of the kafka servers"
},
"mtlsConfig" : {
"description" : "TLS config when calling webhook",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"securityProtocol" : {
"type" : "string",
"description" : "Used security protocol"
},
"keystore" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"topic" : {
"type" : "string",
"description" : "???"
},
"keyPass" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"saslConfig" : {
"description" : "SASL configuration",
"type" : "object",
"properties" : {
"username" : {
"type" : "string",
"description" : "SASL username"
},
"password" : {
"type" : "string",
"description" : "SASL password"
},
"mechanism" : {
"type" : "string",
"description" : "SASL login mechanism"
}
}
},
"tlsTrustCertsFilePath" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"tenant" : {
"type" : "string",
"description" : "???"
},
"uri" : {
"type" : "string",
"description" : "???"
},
"namespace" : {
"type" : "string",
"description" : "???"
},
"sendWorkers" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"applyTemplate" : {
"type" : "boolean",
"description" : "Enable template creation/update"
},
"uris" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"version" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"maxBulkSize" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Sender headers"
},
"indexSettings" : {
"description" : "Indexation settings",
"properties" : {
"clientSide" : {
"type" : "boolean",
"description" : "Enable index splitting on client side"
},
"numberOfShards" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"numberOfReplicas" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"interval" : {
"description" : "Index splitting interval",
"properties" : { },
"type" : "object"
}
},
"type" : "object"
},
"user" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"index" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"password" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"ref" : {
"type" : "string",
"description" : "???"
},
"config" : {
"type" : "object",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
},
"maxFileSize" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"labels" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"url" : {
"type" : "string",
"description" : "Sender URL"
},
"to" : {
"type" : "array",
"items" : {
"properties" : {
"name" : {
"type" : "string",
"description" : "Destination name"
},
"email" : {
"type" : "string",
"description" : "Email address"
}
},
"type" : "object"
},
"description" : "Destination email address"
},
"eu" : {
"type" : "boolean",
"description" : "European tenant"
},
"apiKey" : {
"type" : "string",
"description" : "Sendgrid apikey"
},
"domain" : {
"type" : "string",
"description" : "Mailgun domain"
},
"apiKeyPublic" : {
"type" : "string",
"description" : "Public key"
},
"apiKeyPrivate" : {
"type" : "string",
"description" : "Private key"
}
},
"type" : "object"
},
"projection" : {
"type" : "object",
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"filtering" : {
"description" : "???",
"properties" : {
"include" : {
"type" : "array",
"items" : {
"type" : "object"
},
"description" : "???"
},
"exclude" : {
"type" : "array",
"items" : {
"type" : "object"
},
"description" : "???"
}
},
"type" : "object"
}
}
},
"otoroshi.next.plugins.NgEndlessHttpResponseConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"finger" : {
"type" : "boolean",
"description" : "???"
},
"addresses" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.ssl.pki.models.GenKeyPairResponse" : {
"type" : "object",
"description" : "Response for a keypair generation operation",
"properties" : {
"publicKey" : {
"type" : "string",
"description" : "Public key (PEM encoded)"
},
"privateKey" : {
"type" : "string",
"description" : "Private key (PEM encoded)"
}
}
},
"BulkBody" : {
"type" : "string",
"description" : "Body composed of stringified JSON lines, each one representing an entity"
},
"otoroshi.plugins.discovery.DiscoveryJob" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"PemCsrBody" : {
"type" : "string",
"description" : "PEM encoded csr"
},
"otoroshi.next.plugins.WasmJobsConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"unique_id" : {
"type" : "string",
"description" : "???"
},
"instantiation" : {
"description" : "???",
"properties" : { },
"type" : "object"
},
"cron_expression" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"kind" : {
"description" : "???",
"properties" : { },
"type" : "object"
},
"config" : {
"description" : "???",
"properties" : {
"allowedHosts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"memoryPages" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"allowedPaths" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"instances" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"config" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"authorizations" : {
"description" : "???",
"properties" : {
"proxyStateAccess" : {
"type" : "boolean",
"description" : "???"
},
"httpAccess" : {
"type" : "boolean",
"description" : "???"
},
"globalMapAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"pluginDataStoreAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"pluginMapAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"proxyHttpCallTimeout" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"configurationAccess" : {
"type" : "boolean",
"description" : "???"
},
"globalDataStoreAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
}
},
"type" : "object"
},
"opa" : {
"type" : "boolean",
"description" : "???"
},
"wasi" : {
"type" : "boolean",
"description" : "???"
},
"functionName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"interval" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"initial_delay" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"raw_config" : {
"type" : "object",
"description" : "???"
}
}
},
"Unknown" : {
"type" : "object",
"description" : "value used by the openapi generator when no matching type found. Should be fixed in a near future."
},
"otoroshi.next.plugins.NgBiscuitConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"legacy" : {
"description" : "???",
"properties" : {
"facts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"publicKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"resources" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"enforce" : {
"type" : "boolean",
"description" : "???"
},
"extractorName" : {
"type" : "string",
"description" : "???"
},
"checks" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"extractor" : {
"type" : "string",
"description" : "???"
},
"revocation_ids" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"rules" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
}
}
},
"otoroshi.plugins.authcallers.OAuth2CallerConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"url" : {
"type" : "string",
"description" : "???"
},
"tlsConfig" : {
"description" : "???",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kind" : {
"description" : "The kind of oauth2 flow",
"type" : "string",
"enum" : [ "client_credentials", "password" ]
},
"password" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"cacheTokenSeconds" : {
"type" : "number",
"description" : "???"
},
"headerValueFormat" : {
"type" : "string",
"description" : "???"
},
"user" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"headerName" : {
"type" : "string",
"description" : "???"
},
"clientSecret" : {
"type" : "string",
"description" : "???"
},
"scope" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"jsonPayload" : {
"type" : "boolean",
"description" : "???"
},
"clientId" : {
"type" : "string",
"description" : "???"
},
"audience" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.next.plugins.MissingHeadersOut" : {
"type" : "object",
"description" : "???",
"properties" : {
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.plugins.oidc.ThirdPartyApiKeyConfigType" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.plugins.authcallers.BasicAuthCaller" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.plugins.Keys" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.models.CustomHeadersAuthConstraints" : {
"type" : "object",
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"clientIdHeaderName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"clientSecretHeaderName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.next.plugins.OIDCAccessTokenConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"at_least_one" : {
"type" : "boolean",
"description" : "???"
},
"config" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.next.plugins.NgHasClientCertMatchingValidator" : {
"type" : "object",
"description" : "???",
"properties" : {
"subject_dns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"serial_numbers" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"issuer_dns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"regex_issuer_dns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"regex_subject_dns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.models.TlsSettings" : {
"type" : "object",
"description" : "Global TLS settings. The default domain that will be picked if no certificate matches the current request",
"properties" : {
"trustedCAsServer" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "List for CAs trusted by otoroshi when performing TLS termination"
},
"includeJdkCaClient" : {
"type" : "boolean",
"description" : "Use known JDK CAs to build trust when performing request from otoroshi to backends"
},
"randomIfNotFound" : {
"type" : "boolean",
"description" : "Use a random one"
},
"defaultDomain" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"includeJdkCaServer" : {
"type" : "boolean",
"description" : "Use known JDK CAs to build trust for incoming request"
}
}
},
"otoroshi.models.MetricsSettings" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of exporter",
"enum" : [ "elastic", "webhook", "kafka", "pulsar", "file", "mailer", "custom", "console", "metrics" ]
},
"labels" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object",
"description" : "???"
},
"otoroshi.next.plugins.OIDCAccessTokenAsApikey" : {
"type" : "object",
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"at_least_one" : {
"type" : "boolean",
"description" : "???"
},
"config" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.models.Sign" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of strategy",
"enum" : [ "PassThrough", "Sign", "Transform", "DefaultToken" ]
},
"verificationSettings" : {
"description" : "Verification settings",
"properties" : {
"fields" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Fields validation"
},
"arrayFields" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Fields array validation"
}
},
"type" : "object"
},
"algoSettings" : {
"description" : "Re-signing jwt token settings",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
},
"type" : "object"
}
},
"type" : "object",
"description" : "jwt token re-sign policy settings"
},
"otoroshi.plugins.mirror.MirroringEvent" : {
"type" : "object",
"description" : "???",
"properties" : {
"ctx" : {
"description" : "???",
"properties" : {
"descriptor" : {
"description" : "???",
"properties" : {
"buildMode" : {
"type" : "boolean",
"description" : "???"
},
"hosts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"privateApp" : {
"type" : "boolean",
"description" : "???"
},
"localScheme" : {
"type" : "string",
"description" : "???"
},
"authConfigRef" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"issueCertCA" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"root" : {
"type" : "string",
"description" : "???"
},
"name" : {
"type" : "string",
"description" : "???"
},
"additionalHeaders" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"domain" : {
"type" : "string",
"description" : "???"
},
"clientConfig" : {
"description" : "???",
"properties" : {
"connectionTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"useCircuitBreaker" : {
"type" : "boolean",
"description" : "???"
},
"retryInitialDelay" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"cacheConnectionSettings" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"queueSize" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
},
"type" : "object"
},
"proxy" : {
"description" : "???",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"callTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"callAndStreamTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"globalTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"maxErrors" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"retries" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"backoffFactor" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"customTimeouts" : {
"type" : "array",
"items" : {
"properties" : {
"path" : {
"type" : "string",
"description" : "???"
},
"callAndStreamTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"callTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"idleTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"globalTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"connectionTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"idleTimeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"sampleInterval" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
}
},
"type" : "object"
},
"matchingRoot" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"forceHttps" : {
"type" : "boolean",
"description" : "???"
},
"localHost" : {
"type" : "string",
"description" : "???"
},
"sendOtoroshiHeadersBack" : {
"type" : "boolean",
"description" : "???"
},
"healthCheck" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"url" : {
"type" : "string",
"description" : "???"
},
"timeout" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
},
"type" : "object"
},
"strictlyPrivate" : {
"type" : "boolean",
"description" : "???"
},
"detectApiKeySooner" : {
"type" : "boolean",
"description" : "???"
},
"allowHttp10" : {
"type" : "boolean",
"description" : "???"
},
"subdomain" : {
"type" : "string",
"description" : "???"
},
"paths" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"stripPath" : {
"type" : "boolean",
"description" : "???"
},
"secComAlgoChallengeOtoToBack" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "size", "publicKey", "privateKey" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "secret", "base64" ]
}, {
"required" : [ "type", "url", "tlsConfig", "kty", "proxy", "headers", "ttl", "timeout" ]
}, {
"required" : [ "type", "onlyExposedCerts" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "publicKey", "privateKey" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
}
},
"apiKeyConstraints" : {
"description" : "???",
"properties" : {
"customHeadersAuth" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"clientIdHeaderName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"clientSecretHeaderName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"routing" : {
"description" : "???",
"properties" : {
"oneTagIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"noneMetaKeysIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"oneMetaIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"oneMetaKeyIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allMetaKeysIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"noneTagIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allTagsIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allMetaIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"noneMetaIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"clientIdAuth" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"headerName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"queryName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"jwtAuth" : {
"description" : "???",
"properties" : {
"keyPairSigned" : {
"type" : "boolean",
"description" : "???"
},
"cookieName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"queryName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"headerName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"secretSigned" : {
"type" : "boolean",
"description" : "???"
},
"maxJwtLifespanSecs" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"includeRequestAttributes" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"basicAuth" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"headerName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"queryName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
}
},
"type" : "object"
},
"env" : {
"type" : "string",
"description" : "???"
},
"xForwardedHeaders" : {
"type" : "boolean",
"description" : "???"
},
"transformerRefs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"gzip" : {
"description" : "???",
"properties" : {
"compressionLevel" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"blackList" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"chunkedThreshold" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"bufferSize" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"whiteList" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"sendInfoToken" : {
"type" : "boolean",
"description" : "???"
},
"tcpUdpTunneling" : {
"type" : "boolean",
"description" : "???"
},
"removeHeadersOut" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"useAkkaHttpClient" : {
"type" : "boolean",
"description" : "???"
},
"maintenanceMode" : {
"type" : "boolean",
"description" : "???"
},
"id" : {
"type" : "string",
"description" : "???"
},
"removeHeadersIn" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"logAnalyticsOnServer" : {
"type" : "boolean",
"description" : "???"
},
"secComAlgoInfoToken" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "size", "publicKey", "privateKey" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "secret", "base64" ]
}, {
"required" : [ "type", "url", "tlsConfig", "kty", "proxy", "headers", "ttl", "timeout" ]
}, {
"required" : [ "type", "onlyExposedCerts" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "publicKey", "privateKey" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
}
},
"userFacing" : {
"type" : "boolean",
"description" : "???"
},
"transformerConfig" : {
"type" : "object",
"description" : "???"
},
"clientValidatorRef" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"securityExcludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"ipFiltering" : {
"description" : "???",
"properties" : {
"whitelist" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"blacklist" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"targets" : {
"type" : "array",
"items" : {
"properties" : {
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"host" : {
"type" : "string",
"description" : "???"
},
"weight" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"protocol" : {
"type" : "string",
"enum" : [ "HTTP/1.0", "HTTP/1.1", "HTTP/2.0", "HTTP/3.0" ],
"description" : "???"
},
"predicate" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"dc" : {
"type" : "string",
"description" : "???"
},
"positions" : {
"type" : "array",
"items" : {
"properties" : {
"latitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"longitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"radius" : {
"type" : "number",
"format" : "double",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"provider" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataCenter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"rack" : {
"type" : "string",
"description" : "???"
},
"region" : {
"type" : "string",
"description" : "???"
},
"zone" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"ipAddress" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"mtlsConfig" : {
"description" : "???",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"scheme" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"redirection" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"code" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"to" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"restrictions" : {
"description" : "???",
"properties" : {
"forbidden" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"allowed" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"notFound" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"allowLast" : {
"type" : "boolean",
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"overrideHost" : {
"type" : "boolean",
"description" : "???"
},
"accessValidator" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"refs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"config" : {
"type" : "object",
"description" : "???"
}
},
"type" : "object"
},
"sendStateChallenge" : {
"type" : "boolean",
"description" : "???"
},
"chaosConfig" : {
"description" : "???",
"properties" : {
"badResponsesFaultConfig" : {
"description" : "Settings for bad responses",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"responses" : {
"type" : "array",
"items" : {
"properties" : {
"status" : {
"type" : "integer",
"format" : "int32",
"description" : "The HTTP status for the response"
},
"body" : {
"type" : "string",
"description" : "The body of the HTTP response"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "The HTTP headers of the response"
}
},
"type" : "object"
},
"description" : "The possibles responses"
}
}
},
"largeRequestFaultConfig" : {
"description" : "Settings for large requests",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"additionalRequestSize" : {
"type" : "integer",
"format" : "int32",
"description" : "The size added to the request body in bytes. Added payload will be spaces only."
}
}
},
"largeResponseFaultConfig" : {
"description" : "Settings for large responses",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"additionalResponseSize" : {
"type" : "integer",
"format" : "int32",
"description" : "Add n 0 bytes"
}
}
},
"latencyInjectionFaultConfig" : {
"description" : "Settings for latency injection",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"from" : {
"type" : "number",
"description" : "The start range of latency added to the request"
},
"to" : {
"type" : "number",
"description" : "The end range of latency added to the request"
}
}
},
"enabled" : {
"type" : "boolean",
"description" : "Whether or not this config is enabled"
}
},
"type" : "object"
},
"secComInfoTokenVersion" : {
"description" : "Version of the info token",
"type" : "string",
"enum" : [ "Legacy", "Latest" ]
},
"additionalHeadersOut" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"secComHeaders" : {
"description" : "???",
"properties" : {
"claimRequestName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"stateRequestName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"stateResponseName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"matchingHeaders" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"secComAlgoChallengeBackToOto" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "size", "publicKey", "privateKey" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "secret", "base64" ]
}, {
"required" : [ "type", "url", "tlsConfig", "kty", "proxy", "headers", "ttl", "timeout" ]
}, {
"required" : [ "type", "onlyExposedCerts" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "publicKey", "privateKey" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
}
},
"secComUseSameAlgo" : {
"type" : "boolean",
"description" : "???"
},
"useNewWSClient" : {
"type" : "boolean",
"description" : "???"
},
"secComExcludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"redirectToLocal" : {
"type" : "boolean",
"description" : "???"
},
"enforceSecureCommunication" : {
"type" : "boolean",
"description" : "???"
},
"missingOnlyHeadersOut" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"secComSettings" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "size", "publicKey", "privateKey" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "secret", "base64" ]
}, {
"required" : [ "type", "url", "tlsConfig", "kty", "proxy", "headers", "ttl", "timeout" ]
}, {
"required" : [ "type", "onlyExposedCerts" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "publicKey", "privateKey" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
}
},
"handleLegacyDomain" : {
"type" : "boolean",
"description" : "???"
},
"canary" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"traffic" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"targets" : {
"type" : "array",
"items" : {
"properties" : {
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"host" : {
"type" : "string",
"description" : "???"
},
"weight" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"protocol" : {
"type" : "string",
"enum" : [ "HTTP/1.0", "HTTP/1.1", "HTTP/2.0", "HTTP/3.0" ],
"description" : "???"
},
"predicate" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"dc" : {
"type" : "string",
"description" : "???"
},
"positions" : {
"type" : "array",
"items" : {
"properties" : {
"latitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"longitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"radius" : {
"type" : "number",
"format" : "double",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"provider" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataCenter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"rack" : {
"type" : "string",
"description" : "???"
},
"region" : {
"type" : "string",
"description" : "???"
},
"zone" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"ipAddress" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"mtlsConfig" : {
"description" : "???",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"scheme" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"root" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"_loc" : {
"description" : "???",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"plugins" : {
"description" : "???",
"properties" : {
"config" : {
"type" : "object",
"description" : "Plugins configuration"
},
"enabled" : {
"type" : "boolean",
"description" : "Plugins enabled"
},
"excluded" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Excluded paths"
},
"refs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Enabled plugins"
}
},
"type" : "object"
},
"secComTtl" : {
"type" : "number",
"description" : "???"
},
"description" : {
"type" : "string",
"description" : "???"
},
"secComVersion" : {
"description" : "Version of the challenge token",
"type" : "string",
"enum" : [ "V1", "v2" ]
},
"preRouting" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"refs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"config" : {
"type" : "object",
"description" : "???"
}
},
"type" : "object"
},
"groups" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"readOnly" : {
"type" : "boolean",
"description" : "???"
},
"privatePatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"targetsLoadBalancing" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"enum" : [ "BestResponseTime", "IpAddressHash", "Random", "RoundRobin", "Sticky", "WeightedBestResponseTime" ]
},
"ratio" : {
"type" : "number",
"format" : "double"
}
},
"type" : "object"
},
"cors" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"allowCredentials" : {
"type" : "boolean",
"description" : "???"
},
"maxAge" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"allowMethods" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allowHeaders" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"exposeHeaders" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allowOrigin" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"publicPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"api" : {
"description" : "???",
"properties" : {
"exposeApi" : {
"type" : "boolean",
"description" : "???"
},
"openApiDescriptorUrl" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"missingOnlyHeadersIn" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"issueCert" : {
"type" : "boolean",
"description" : "???"
},
"headersVerification" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"jwtVerifier" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "desc", "name", "strict", "source", "algoSettings", "tags", "id", "_loc", "strategy", "metadata" ]
}, {
"required" : [ "type", "strict", "source", "algoSettings", "enabled", "excludedPatterns", "strategy" ]
}, {
"required" : [ "type", "excludedPatterns", "enabled", "ids" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of verifier",
"enum" : [ "global", "local", "ref" ]
},
"desc" : {
"type" : "string",
"description" : "Verifier description"
},
"name" : {
"type" : "string",
"description" : "Verifier name"
},
"strict" : {
"type" : "boolean",
"description" : "???"
},
"source" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "name" ]
}, {
"required" : [ "type", "name", "remove" ]
}, {
"required" : [ "type", "name" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of location",
"enum" : [ "InQueryParam", "InHeader", "InCookie" ]
},
"name" : {
"type" : "string",
"description" : "Query param name"
},
"remove" : {
"type" : "string",
"description" : "Remove from value"
}
}
},
"algoSettings" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
},
"type" : "object"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Entity tags"
},
"id" : {
"type" : "string",
"description" : "Verifier id"
},
"_loc" : {
"description" : "Entity location",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"strategy" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "strict", "token", "verificationSettings" ]
}, {
"required" : [ "type", "verificationSettings" ]
}, {
"required" : [ "type", "verificationSettings", "algoSettings" ]
}, {
"required" : [ "type", "verificationSettings", "transformSettings", "algoSettings" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of strategy",
"enum" : [ "PassThrough", "Sign", "Transform", "DefaultToken" ]
},
"strict" : {
"type" : "boolean",
"description" : "If the token already exists in the request, then fail"
},
"token" : {
"type" : "object",
"description" : "The default token"
},
"verificationSettings" : {
"description" : "Verification settings",
"properties" : {
"fields" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Fields validation"
},
"arrayFields" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Fields array validation"
}
},
"type" : "object"
},
"algoSettings" : {
"description" : "Algorithm settings for re-signing token",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "size", "publicKey", "privateKey" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "secret", "base64" ]
}, {
"required" : [ "type", "url", "tlsConfig", "kty", "proxy", "headers", "ttl", "timeout" ]
}, {
"required" : [ "type", "onlyExposedCerts" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "publicKey", "privateKey" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
}
},
"transformSettings" : {
"description" : "Transformation settings",
"properties" : {
"location" : {
"description" : "Location of the token",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of location",
"enum" : [ "InQueryParam", "InHeader", "InCookie" ]
},
"name" : {
"type" : "string",
"description" : "Query param name"
},
"remove" : {
"type" : "string",
"description" : "Remove from value"
}
},
"type" : "object"
},
"mappingSettings" : {
"description" : "Token mapping settings",
"properties" : {
"map" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Change values"
},
"values" : {
"type" : "object",
"description" : "Add values"
},
"remove" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Remove some token claims"
}
},
"type" : "object"
}
},
"type" : "object"
}
}
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Entity metadata"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"excludedPatterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"ids" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"letsEncrypt" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"id" : {
"type" : "string",
"description" : "???"
},
"config" : {
"description" : "???",
"properties" : {
"conf" : {
"type" : "object",
"description" : "???"
}
},
"type" : "object"
}
},
"type" : "object"
}
}
},
"otoroshi.models.PassThrough" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of strategy",
"enum" : [ "PassThrough", "Sign", "Transform", "DefaultToken" ]
},
"verificationSettings" : {
"description" : "Verification settings",
"properties" : {
"fields" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Fields validation"
},
"arrayFields" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Fields array validation"
}
},
"type" : "object"
}
},
"type" : "object",
"description" : "jwt token validation policicy that just validate the token"
},
"otoroshi.plugins.external.ExternalHttpValidatorConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"config" : {
"type" : "object",
"description" : "???"
}
}
},
"otoroshi.wasm.proxywasm.CorazaWafConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"inspectBody" : {
"type" : "boolean",
"description" : "???"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"poolCapacity" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"id" : {
"type" : "string",
"description" : "???"
},
"name" : {
"type" : "string",
"description" : "???"
},
"_loc" : {
"description" : "???",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"config" : {
"type" : "object",
"description" : "???"
},
"description" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.plugins.geoloc.MaxMindGeolocationInfoExtractor" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.NgHeaderNamesConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"names" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.next.models.NgRouteCompositionDataStore" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.events.PulsarConfig" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of exporter",
"enum" : [ "elastic", "webhook", "kafka", "pulsar", "file", "mailer", "custom", "console", "metrics" ]
},
"tlsTrustCertsFilePath" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"tenant" : {
"type" : "string",
"description" : "???"
},
"uri" : {
"type" : "string",
"description" : "???"
},
"mtlsConfig" : {
"description" : "???",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"topic" : {
"type" : "string",
"description" : "???"
},
"namespace" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object",
"description" : "???"
},
"otoroshi.auth.SamlAuthModuleConfig" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the type of the module",
"enum" : [ "saml", "oauth1", "oauth2", "ldap", "basic" ]
},
"desc" : {
"type" : "string",
"description" : "???"
},
"name" : {
"type" : "string",
"description" : "???"
},
"ssoProtocolBinding" : {
"description" : "???",
"properties" : { },
"type" : "object"
},
"clientSideSessionEnabled" : {
"type" : "boolean",
"description" : "???"
},
"emailAttributeName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"validatingCertificates" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"singleLogoutProtocolBinding" : {
"description" : "???",
"properties" : { },
"type" : "object"
},
"sessionMaxAge" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"issuer" : {
"type" : "string",
"description" : "???"
},
"signature" : {
"description" : "???",
"properties" : {
"algorithm" : {
"description" : "???",
"properties" : { },
"type" : "object"
},
"canocalizationMethod" : {
"description" : "???",
"properties" : { },
"type" : "object"
}
},
"type" : "object"
},
"userValidators" : {
"type" : "array",
"items" : {
"properties" : {
"path" : {
"type" : "string",
"description" : "???"
},
"value" : {
"type" : "object",
"description" : "???"
},
"error" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"description" : "???"
},
"singleLogoutUrl" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"id" : {
"type" : "string",
"description" : "???"
},
"_loc" : {
"description" : "???",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"usedNameIDAsEmail" : {
"type" : "boolean",
"description" : "???"
},
"singleSignOnUrl" : {
"type" : "string",
"description" : "???"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"validateAssertions" : {
"type" : "boolean",
"description" : "???"
},
"nameIDFormat" : {
"description" : "???",
"properties" : { },
"type" : "object"
},
"validateSignature" : {
"type" : "boolean",
"description" : "???"
},
"credentials" : {
"description" : "???",
"properties" : {
"signingKey" : {
"description" : "???",
"properties" : {
"certificate" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"useOtoroshiCertificate" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"encryptionKey" : {
"description" : "???",
"properties" : {
"certificate" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"useOtoroshiCertificate" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"signedDocuments" : {
"type" : "boolean",
"description" : "???"
},
"encryptedAssertions" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"sessionCookieValues" : {
"description" : "???",
"properties" : {
"httpOnly" : {
"type" : "boolean",
"description" : "???"
},
"secure" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
}
},
"type" : "object",
"description" : "???"
},
"otoroshi.api.TweakedGlobalConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"config" : {
"description" : "???",
"properties" : {
"geolocationSettings" : {
"description" : "Settings for geolocation extraction",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "enabled", "apikey", "timeout" ]
}, {
"required" : [ "type", "enabled", "path" ]
}, {
"required" : [ "type" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"enum" : [ "none" ]
},
"enabled" : {
"type" : "boolean",
"description" : "Geolocation using maxmind db enabled"
},
"apikey" : {
"type" : "string",
"description" : "IpStack apikey"
},
"timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "API call timeout"
},
"path" : {
"type" : "string",
"description" : "Maxmlind db file path"
}
}
},
"alertsEmails" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Email addresses that will receive all Otoroshi alert events"
},
"throttlingQuota" : {
"type" : "integer",
"format" : "int64",
"description" : "Authorized number of calls per second globally, measured on 10 seconds"
},
"anonymousReporting" : {
"type" : "boolean",
"description" : "???"
},
"maxWebhookSize" : {
"type" : "integer",
"format" : "int32",
"description" : "Max number of items in webhooks"
},
"env" : {
"type" : "object",
"description" : "???"
},
"maxConcurrentRequests" : {
"type" : "integer",
"format" : "int64",
"description" : "The number of authorized request processed at the same time"
},
"cleverSettings" : {
"description" : "Optional CleverCloud configuration",
"type" : "object",
"properties" : {
"consumerSecret" : {
"type" : "string",
"description" : "Clever-Cloud oauth consumer secret"
},
"consumerKey" : {
"type" : "string",
"description" : "Clever-Cloud oauth consumer key"
},
"secret" : {
"type" : "string",
"description" : "Clever-Cloud oauth secret"
},
"token" : {
"type" : "string",
"description" : "Clever-Cloud oauth token"
},
"orgaId" : {
"type" : "string",
"description" : "Clever-Cloud organization id"
}
}
},
"templates" : {
"description" : "The otoroshi default templates for entities",
"properties" : {
"team" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"script" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"apikey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"group" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"tcpService" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"verifier" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"service" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"target" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certificate" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataExporter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"route" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"backend" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"template" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"tenant" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"authConfig" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"descriptor" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"endlessIpAddresses" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "IP addresses for which any request to Otoroshi will respond with 128 Gb of zeros"
},
"plugins" : {
"description" : "global plugins settings",
"properties" : {
"config" : {
"type" : "object",
"description" : "Plugins configuration"
},
"enabled" : {
"type" : "boolean",
"description" : "Plugins enabled"
},
"excluded" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Excluded paths"
},
"refs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Enabled plugins"
}
},
"type" : "object"
},
"kafkaConfig" : {
"description" : "Kafka settings",
"type" : "object",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of exporter",
"enum" : [ "elastic", "webhook", "kafka", "pulsar", "file", "mailer", "custom", "console", "metrics" ]
},
"sendEvents" : {
"type" : "boolean",
"description" : "Send events to it, or just connect"
},
"truststore" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"hostValidation" : {
"type" : "boolean",
"description" : "Enabled TLS hostname validation"
},
"servers" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "URLs of the kafka servers"
},
"mtlsConfig" : {
"description" : "TLS config to access the cluster",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"securityProtocol" : {
"type" : "string",
"description" : "Used security protocol"
},
"keystore" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"topic" : {
"type" : "string",
"description" : "Optional kafka topic (otoroshi-events by default)"
},
"keyPass" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"saslConfig" : {
"description" : "SASL configuration",
"type" : "object",
"properties" : {
"username" : {
"type" : "string",
"description" : "SASL username"
},
"password" : {
"type" : "string",
"description" : "SASL password"
},
"mechanism" : {
"type" : "string",
"description" : "SASL login mechanism"
}
}
}
}
},
"maxLogsSize" : {
"type" : "integer",
"format" : "int32",
"description" : "Number of events kept locally"
},
"proxies" : {
"description" : "Web proxies settings",
"properties" : {
"elastic" : {
"description" : "Web proxy used to call elastic",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"eventsWebhooks" : {
"description" : "Web proxy used to call webhooks",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"jwk" : {
"description" : "Web proxy used to fetch jwks",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"auth" : {
"description" : "Web proxy used to call OAuth providers",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"clevercloud" : {
"description" : "Web proxy used to call clevercloud",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"alertEmails" : {
"description" : "Web proxy used to send alert emails",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"authority" : {
"description" : "Web proxy used to check authorities",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"services" : {
"description" : "Web proxy used to access services targets",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
}
},
"type" : "object"
},
"enableEmbeddedMetrics" : {
"type" : "boolean",
"description" : "Enable embedded metrics"
},
"elasticReadsConfig" : {
"description" : "Config. for elastic reads",
"type" : "object",
"properties" : {
"type" : {
"type" : "string",
"description" : "null type",
"enum" : [ "elastic", "webhook", "kafka", "pulsar", "file", "mailer", "custom", "console", "metrics" ],
"nullable" : true
},
"sendWorkers" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"applyTemplate" : {
"type" : "boolean",
"description" : "Enable template creation/update"
},
"uris" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"mtlsConfig" : {
"description" : "TLS settings for the http client",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"version" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"maxBulkSize" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Additionnal headers in the http request"
},
"indexSettings" : {
"description" : "Indexation settings",
"properties" : {
"clientSide" : {
"type" : "boolean",
"description" : "Enable index splitting on client side"
},
"numberOfShards" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"numberOfReplicas" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"interval" : {
"description" : "Index splitting interval",
"properties" : { },
"type" : "object"
}
},
"type" : "object"
},
"user" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"index" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"password" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"trustXForwarded" : {
"type" : "boolean",
"description" : "Use X-Forwarded-* headers for routing"
},
"quotasSettings" : {
"description" : "Settings to generate alert when an apikey almost exceeded or exceeded its quotas",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "Is quotas alert enabled"
},
"dailyQuotasThreshold" : {
"type" : "number",
"format" : "double",
"description" : "The daily quotas threshold before generating alert"
},
"monthlyQuotasThreshold" : {
"type" : "number",
"format" : "double",
"description" : "The monthly quotas threshold before generating alert"
}
},
"type" : "object"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Entity tags"
},
"limitConcurrentRequests" : {
"type" : "boolean",
"description" : "If enabled, Otoroshi will reject new request if too much at the same time"
},
"useAkkaHttpClient" : {
"type" : "boolean",
"description" : "Globally use akka http client for everything"
},
"elasticWritesConfigs" : {
"type" : "array",
"items" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "null type",
"enum" : [ "elastic", "webhook", "kafka", "pulsar", "file", "mailer", "custom", "console", "metrics" ],
"nullable" : true
},
"sendWorkers" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"applyTemplate" : {
"type" : "boolean",
"description" : "Enable template creation/update"
},
"uris" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"mtlsConfig" : {
"description" : "TLS settings for the http client",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"version" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"maxBulkSize" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Additionnal headers in the http request"
},
"indexSettings" : {
"description" : "Indexation settings",
"properties" : {
"clientSide" : {
"type" : "boolean",
"description" : "Enable index splitting on client side"
},
"numberOfShards" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"numberOfReplicas" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"interval" : {
"description" : "Index splitting interval",
"properties" : { },
"type" : "object"
}
},
"type" : "object"
},
"user" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"index" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"password" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"description" : "Configs. for Elastic writes"
},
"logAnalyticsOnServer" : {
"type" : "boolean",
"description" : "Log analytics event on the server"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Entity metadata"
},
"apiReadOnly" : {
"type" : "boolean",
"description" : "If enabled, Admin API won't be able to write/update/delete entities"
},
"backOfficeAuthRef" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"streamEntityOnly" : {
"type" : "boolean",
"description" : "HTTP will be streamed only. Doesn't work with old browsers"
},
"otoroshiId" : {
"type" : "string",
"description" : "Unique id for this otoroshi instance"
},
"mailerSettings" : {
"description" : "Optional mailer configuration",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type" ]
}, {
"required" : [ "type", "url", "headers", "to" ]
}, {
"required" : [ "type", "eu", "apiKey", "domain", "to" ]
}, {
"required" : [ "type", "apiKeyPublic", "apiKeyPrivate", "to" ]
}, {
"required" : [ "type" ]
}, {
"required" : [ "type", "apiKey", "to" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of exporter",
"enum" : [ "elastic", "webhook", "kafka", "pulsar", "file", "mailer", "custom", "console", "metrics" ]
},
"url" : {
"type" : "string",
"description" : "Sender URL"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Sender headers"
},
"to" : {
"type" : "array",
"items" : {
"properties" : {
"name" : {
"type" : "string",
"description" : "Destination name"
},
"email" : {
"type" : "string",
"description" : "Email address"
}
},
"type" : "object"
},
"description" : "Destination email address"
},
"eu" : {
"type" : "boolean",
"description" : "European tenant"
},
"apiKey" : {
"type" : "string",
"description" : "Sendgrid apikey"
},
"domain" : {
"type" : "string",
"description" : "Mailgun domain"
},
"apiKeyPublic" : {
"type" : "string",
"description" : "Public key"
},
"apiKeyPrivate" : {
"type" : "string",
"description" : "Private key"
}
}
},
"lines" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Possibles lines for Otoroshi"
},
"extensions" : {
"type" : "object",
"additionalProperties" : {
"type" : "object"
},
"description" : "???"
},
"middleFingers" : {
"type" : "boolean",
"description" : "Use middle finger emoji as a response character for endless HTTP responses"
},
"analyticsWebhooks" : {
"type" : "array",
"items" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of exporter",
"enum" : [ "elastic", "webhook", "kafka", "pulsar", "file", "mailer", "custom", "console", "metrics" ]
},
"url" : {
"type" : "string",
"description" : "The URL where events are posted"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Headers to authorize the call or whatever"
},
"mtlsConfig" : {
"description" : "TLS config when calling webhook",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
}
},
"type" : "object"
},
"description" : "Webhook that will receive all internal Otoroshi events"
},
"autoCert" : {
"description" : "Auto certs settings",
"properties" : {
"allowed" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "allowed domains"
},
"enabled" : {
"type" : "boolean",
"description" : "Enable auto cert"
},
"replyNicely" : {
"type" : "boolean",
"description" : "Reply TLS error with an auto generated certificate for the domain"
},
"notAllowed" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "not allowed domains"
},
"caRef" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"maintenanceMode" : {
"type" : "boolean",
"description" : "Global maintenant mode"
},
"initWithNewEngine" : {
"type" : "boolean",
"description" : "Was this instance init with new engine as default"
},
"letsEncryptSettings" : {
"description" : "Let's encrypt (ACME) settings",
"properties" : {
"privateKey" : {
"type" : "string",
"description" : "Let's encrypt (ACME) private key"
},
"contacts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Let's encrypt (ACME) contacts"
},
"emails" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Let's encrypt (ACME) contact emails"
},
"enabled" : {
"type" : "boolean",
"description" : "Let's encrypt (ACME) enabled"
},
"publicKey" : {
"type" : "string",
"description" : "Let's encrypt (ACME) public key"
},
"server" : {
"type" : "string",
"description" : "Let's encrypt (ACME) server"
}
},
"type" : "object"
},
"snowMonkeyConfig" : {
"description" : "Snowmonky settings",
"properties" : {
"dryRun" : {
"type" : "boolean",
"description" : "Whether or not outages will actualy impact requests"
},
"outageDurationTo" : {
"type" : "number",
"description" : "End of outage duration range"
},
"chaosConfig" : {
"description" : "Chaos settings",
"properties" : {
"badResponsesFaultConfig" : {
"description" : "Settings for bad responses",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"responses" : {
"type" : "array",
"items" : {
"properties" : {
"status" : {
"type" : "integer",
"format" : "int32",
"description" : "The HTTP status for the response"
},
"body" : {
"type" : "string",
"description" : "The body of the HTTP response"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "The HTTP headers of the response"
}
},
"type" : "object"
},
"description" : "The possibles responses"
}
}
},
"largeRequestFaultConfig" : {
"description" : "Settings for large requests",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"additionalRequestSize" : {
"type" : "integer",
"format" : "int32",
"description" : "The size added to the request body in bytes. Added payload will be spaces only."
}
}
},
"largeResponseFaultConfig" : {
"description" : "Settings for large responses",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"additionalResponseSize" : {
"type" : "integer",
"format" : "int32",
"description" : "Add n 0 bytes"
}
}
},
"latencyInjectionFaultConfig" : {
"description" : "Settings for latency injection",
"type" : "object",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"from" : {
"type" : "number",
"description" : "The start range of latency added to the request"
},
"to" : {
"type" : "number",
"description" : "The end range of latency added to the request"
}
}
},
"enabled" : {
"type" : "boolean",
"description" : "Whether or not this config is enabled"
}
},
"type" : "object"
},
"timesPerDay" : {
"type" : "integer",
"format" : "int32",
"description" : "Number of time per day each service will be outage"
},
"outageDurationFrom" : {
"type" : "number",
"description" : "Start of outage duration range"
},
"startTime" : {
"type" : "string",
"description" : "Start time of Snow Monkey each day"
},
"includeUserFacingDescriptors" : {
"type" : "boolean",
"description" : "Whether or not user facing apps. will be impacted by Snow Monkey"
},
"targetGroups" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Groups impacted by Snow Monkey. If empty, all groups will be impacted"
},
"enabled" : {
"type" : "boolean",
"description" : "Whether or not this config is enabled"
},
"stopTime" : {
"type" : "string",
"description" : "Stop time of Snow Monkey each day"
},
"outageStrategy" : {
"description" : "",
"type" : "string",
"enum" : [ "AllServicesPerGroup", "OneServicePerGroup" ]
}
},
"type" : "object"
},
"scripts" : {
"description" : "global plugins settings. will be deprecated soon",
"properties" : {
"jobConfig" : {
"type" : "object",
"description" : "jobs enabled"
},
"enabled" : {
"type" : "boolean",
"description" : "Global scripts enabled"
},
"transformersConfig" : {
"type" : "object",
"description" : "transformers config"
},
"transformersRefs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "transformers enabled"
},
"preRouteRefs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "pre-route plugins enabled"
},
"sinkConfig" : {
"type" : "object",
"description" : "sinks config"
},
"jobRefs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "running jobs"
},
"validatorRefs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "validator enabled"
},
"sinkRefs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "sinks enabled"
},
"preRouteConfig" : {
"type" : "object",
"description" : "pre-route config"
},
"validatorConfig" : {
"type" : "object",
"description" : "validator config"
}
},
"type" : "object"
},
"perIpThrottlingQuota" : {
"type" : "integer",
"format" : "int64",
"description" : "Authorized number of calls per second globally per IP address, measured on 10 seconds"
},
"useCircuitBreakers" : {
"type" : "boolean",
"description" : "If enabled, services will be authorized to use circuit breakers"
},
"maxHttp10ResponseSize" : {
"type" : "integer",
"format" : "int64",
"description" : "The max size in bytes of an HTTP 1.0 response"
},
"tlsSettings" : {
"description" : "TLS settings",
"properties" : {
"trustedCAsServer" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "List for CAs trusted by otoroshi when performing TLS termination"
},
"includeJdkCaClient" : {
"type" : "boolean",
"description" : "Use known JDK CAs to build trust when performing request from otoroshi to backends"
},
"randomIfNotFound" : {
"type" : "boolean",
"description" : "Use a random one"
},
"defaultDomain" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"includeJdkCaServer" : {
"type" : "boolean",
"description" : "Use known JDK CAs to build trust for incoming request"
}
},
"type" : "object"
},
"statsdConfig" : {
"description" : "Statsd settings (agent connection)",
"type" : "object",
"properties" : {
"datadog" : {
"type" : "boolean",
"description" : "Datadog agent"
},
"host" : {
"type" : "string",
"description" : "The host of the StatsD agent"
},
"port" : {
"type" : "integer",
"format" : "int32",
"description" : "The port of the StatsD agent"
}
}
},
"autoLinkToDefaultGroup" : {
"type" : "boolean",
"description" : "If not defined, every new service descriptor will be added to the default group"
},
"alertsWebhooks" : {
"type" : "array",
"items" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of exporter",
"enum" : [ "elastic", "webhook", "kafka", "pulsar", "file", "mailer", "custom", "console", "metrics" ]
},
"url" : {
"type" : "string",
"description" : "The URL where events are posted"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Headers to authorize the call or whatever"
},
"mtlsConfig" : {
"description" : "TLS config when calling webhook",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
}
},
"type" : "object"
},
"description" : "Webhook that will receive all Otoroshi alert events"
},
"ipFiltering" : {
"description" : "Global ip filtering settings",
"properties" : {
"whitelist" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"blacklist" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"u2fLoginOnly" : {
"type" : "boolean",
"description" : "If enabled, login to backoffice through Auth0 will be disabled"
},
"userAgentSettings" : {
"description" : "Settings for useragent extraction",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "User agent extraction enabled"
}
},
"type" : "object"
}
},
"type" : "object"
}
}
},
"otoroshi.next.plugins.HMACValidator" : {
"type" : "object",
"description" : "???",
"properties" : {
"secret" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.next.plugins.MockResponseNotFoundException" : {
"type" : "object",
"description" : "???",
"properties" : {
"message" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.plugins.jobs.kubernetes.KubernetesCRDsJob" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.models.Restrictions" : {
"type" : "object",
"description" : "???",
"properties" : {
"forbidden" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"allowed" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"notFound" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"allowLast" : {
"type" : "boolean",
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgLargeRequestFaultConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"additional_request_size" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
}
},
"otoroshi.auth.PKCEConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"algorithm" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.events.StatsdConfig" : {
"type" : "object",
"description" : "Settings for connection to a statsd agent",
"properties" : {
"datadog" : {
"type" : "boolean",
"description" : "Datadog agent"
},
"host" : {
"type" : "string",
"description" : "The host of the StatsD agent"
},
"port" : {
"type" : "integer",
"format" : "int32",
"description" : "The port of the StatsD agent"
}
}
},
"otoroshi.next.plugins.RBACConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"roles" : {
"type" : "string",
"description" : "???"
},
"allow" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"allow_all" : {
"type" : "boolean",
"description" : "???"
},
"role_prefix" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"jwt_path" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"apikey_path" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"deny" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"user_path" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"deny_all" : {
"type" : "boolean",
"description" : "???"
}
}
},
"otoroshi.plugins.biscuit.VerificationContext" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.NgCanarySettings" : {
"type" : "object",
"description" : "???",
"properties" : {
"traffic" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"root" : {
"type" : "string",
"description" : "???"
},
"targets" : {
"type" : "array",
"items" : {
"properties" : {
"ip_address" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"protocol" : {
"type" : "string",
"enum" : [ "HTTP/1.0", "HTTP/1.1", "HTTP/2.0", "HTTP/3.0" ],
"description" : "Protocol for the target"
},
"predicate" : {
"description" : "Predicate to choose this target",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"dc" : {
"type" : "string",
"description" : "???"
},
"positions" : {
"type" : "array",
"items" : {
"properties" : {
"latitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"longitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"radius" : {
"type" : "number",
"format" : "double",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"provider" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataCenter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"rack" : {
"type" : "string",
"description" : "???"
},
"region" : {
"type" : "string",
"description" : "???"
},
"zone" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"tls_config" : {
"description" : "TLS settings to contact this target",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "Enabled"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
},
"loose" : {
"type" : "boolean",
"description" : "Loose verification"
},
"trust_all" : {
"type" : "boolean",
"description" : "Trust any certificate"
},
"trusted_certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
}
},
"type" : "object"
},
"tls" : {
"type" : "boolean",
"description" : "Does the target uses TLS"
},
"port" : {
"type" : "integer",
"format" : "int32",
"description" : "port of the target"
},
"id" : {
"type" : "string",
"description" : "id of the target"
},
"weight" : {
"type" : "integer",
"format" : "int32",
"description" : "The weight of the target when choosing"
},
"hostname" : {
"type" : "string",
"description" : "hostname of the target"
}
},
"type" : "object"
},
"description" : "???"
}
}
},
"otoroshi.models.JWKSAlgoSettings" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
}
},
"type" : "object",
"description" : "Settings to use keypair from JWKS for verification"
},
"otoroshi.plugins.hmac.HMACUtils" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.plugins.authcallers.ForceRetryException" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.StaticBackend" : {
"type" : "object",
"description" : "???",
"properties" : {
"root_path" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgTrafficMirroring" : {
"type" : "object",
"description" : "???",
"properties" : {
"legacy" : {
"description" : "???",
"properties" : {
"conf" : {
"type" : "object",
"description" : "???"
}
},
"type" : "object"
}
}
},
"otoroshi.next.plugins.GraphlCallException" : {
"type" : "object",
"description" : "???",
"properties" : {
"message" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.next.models.RoutingStrategy" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.TailscaleSelectTargetByNameConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"machine_name" : {
"type" : "string",
"description" : "???"
},
"use_ip_address" : {
"type" : "boolean",
"description" : "???"
}
}
},
"otoroshi.next.plugins.IpAddressBlockList" : {
"type" : "object",
"description" : "???",
"properties" : {
"addresses" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.plugins.biscuit.SealedBiscuitToken" : {
"type" : "object",
"description" : "???",
"properties" : {
"token" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.models.IpFiltering" : {
"type" : "object",
"description" : "???",
"properties" : {
"whitelist" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"blacklist" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.plugins.quotas.ServiceQuotas" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.plugins.jobs.kubernetes.KubernetesCertSyncJob" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.ssl.pki.models.GenCsrResponse" : {
"type" : "object",
"description" : "Response for a csr generation operation",
"properties" : {
"csr" : {
"type" : "string",
"description" : "CSR (PEM encoded)"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (PEM encoded)"
},
"privateKey" : {
"type" : "string",
"description" : "Private key (PEM encoded)"
}
}
},
"otoroshi.next.models.NgMatchedRoute" : {
"type" : "object",
"description" : "???",
"properties" : {
"route" : {
"description" : "???",
"properties" : {
"debug_flow" : {
"type" : "boolean",
"description" : "Enable report debugging"
},
"enabled" : {
"type" : "boolean",
"description" : "Is the route enabled"
},
"name" : {
"type" : "string",
"description" : "The name of the route"
},
"id" : {
"type" : "string",
"description" : "The ud of the route"
},
"export_reporting" : {
"type" : "boolean",
"description" : "Export the execution reporting through standard data exporter"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "The metadata of the route"
},
"frontend" : {
"description" : "The frontend of the route",
"properties" : {
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "the headers that will be matched"
},
"query" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "the query params that will be matched"
},
"domains" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "The domain and path that will be matched"
},
"methods" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "the http methods that will be matched"
},
"exact" : {
"type" : "boolean",
"description" : "Match on exact path ?"
},
"strip_path" : {
"type" : "boolean",
"description" : "Is path stripped from backend request"
}
},
"type" : "object"
},
"_loc" : {
"description" : "The location of the route",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "The tags of the route"
},
"capture" : {
"type" : "boolean",
"description" : "Capture http traffic"
},
"groups" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "The groups of the route"
},
"backend_ref" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"description" : {
"type" : "string",
"description" : "The description of the route"
},
"backend" : {
"description" : "The backend of the route",
"properties" : {
"root" : {
"type" : "string",
"description" : "The root path of the backend or the full rewrite path"
},
"health_check" : {
"description" : "???",
"type" : "object",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"url" : {
"type" : "string",
"description" : "???"
},
"timeout" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
}
},
"client" : {
"description" : "Client config. of the backend",
"properties" : {
"idle_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout on idle connection"
},
"sample_interval" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify the sliding window time for the circuit breaker in milliseconds, after this time, error count will be reseted"
},
"cache_connection_settings" : {
"description" : "Cached connection settings",
"properties" : {
"queue_size" : {
"type" : "integer",
"format" : "int32",
"description" : "How much request can be queue before dropping it"
},
"enabled" : {
"type" : "boolean",
"description" : "Is cached connection enabled"
}
},
"type" : "object"
},
"call_and_stream_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (hard timeout, connection will be closed after that duration)"
},
"custom_timeouts" : {
"type" : "array",
"items" : {
"properties" : {
"connection_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout at connection"
},
"call_and_stream_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (hard timeout, connection will be closed after that duration)"
},
"path" : {
"type" : "string",
"description" : "path on which this configuration works"
},
"call_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (soft timeout as it's enforced by the circuit breaker)"
},
"idle_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout on idle connection"
},
"global_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long the global call (with retries) should last at most in milliseconds"
}
},
"type" : "object"
},
"description" : "Custom timeouts per path"
},
"connection_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Timeout at connection"
},
"call_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long each call should last at most in milliseconds (soft timeout as it's enforced by the circuit breaker)"
},
"global_timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify how long the global call (with retries) should last at most in milliseconds"
},
"retry_initial_delay" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify the delay between two retries. Each retry, the delay is multiplied by the backoff factor"
},
"backoff_factor" : {
"type" : "integer",
"format" : "int64",
"description" : "Specify the factor to multiply the delay for each retry"
},
"proxy" : {
"description" : "Web proxy settings for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"retries" : {
"type" : "integer",
"format" : "int32",
"description" : "Specify how many times the client will try to fetch the result of the request after an error before giving up."
},
"max_errors" : {
"type" : "integer",
"format" : "int32",
"description" : "Specify how many errors can pass before opening the circuit breaker"
}
},
"type" : "object"
},
"load_balancing" : {
"description" : "Loadbalancing config og the backend",
"properties" : {
"type" : {
"type" : "string",
"enum" : [ "BestResponseTime", "IpAddressHash", "Random", "RoundRobin", "Sticky", "WeightedBestResponseTime" ]
},
"ratio" : {
"type" : "number",
"format" : "double"
}
},
"type" : "object"
},
"rewrite" : {
"type" : "boolean",
"description" : "Does the backend performs a full url rewrite ?"
},
"targets" : {
"type" : "array",
"items" : {
"properties" : {
"ip_address" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"protocol" : {
"type" : "string",
"enum" : [ "HTTP/1.0", "HTTP/1.1", "HTTP/2.0", "HTTP/3.0" ],
"description" : "Protocol for the target"
},
"predicate" : {
"description" : "Predicate to choose this target",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"dc" : {
"type" : "string",
"description" : "???"
},
"positions" : {
"type" : "array",
"items" : {
"properties" : {
"latitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"longitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"radius" : {
"type" : "number",
"format" : "double",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"provider" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataCenter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"rack" : {
"type" : "string",
"description" : "???"
},
"region" : {
"type" : "string",
"description" : "???"
},
"zone" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"tls_config" : {
"description" : "TLS settings to contact this target",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "Enabled"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
},
"loose" : {
"type" : "boolean",
"description" : "Loose verification"
},
"trust_all" : {
"type" : "boolean",
"description" : "Trust any certificate"
},
"trusted_certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
}
},
"type" : "object"
},
"tls" : {
"type" : "boolean",
"description" : "Does the target uses TLS"
},
"port" : {
"type" : "integer",
"format" : "int32",
"description" : "port of the target"
},
"id" : {
"type" : "string",
"description" : "id of the target"
},
"weight" : {
"type" : "integer",
"format" : "int32",
"description" : "The weight of the target when choosing"
},
"hostname" : {
"type" : "string",
"description" : "hostname of the target"
}
},
"type" : "object"
},
"description" : "The targets of the backend"
}
},
"type" : "object"
}
},
"type" : "object"
},
"path" : {
"type" : "string",
"description" : "???"
},
"no_more_segments" : {
"type" : "boolean",
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgJwtSignerConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"verifier" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"replace_if_present" : {
"type" : "boolean",
"description" : "???"
},
"fail_if_present" : {
"type" : "boolean",
"description" : "???"
}
}
},
"otoroshi.auth.SAMLProtocolBinding" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.NgUserAgentInfoHeaderConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"header_name" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.models.MaxmindGeolocationSettings" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of geolocation",
"enum" : [ "none", "maxmind", "ipstack" ]
},
"enabled" : {
"type" : "boolean",
"description" : "Geolocation using maxmind db enabled"
},
"path" : {
"type" : "string",
"description" : "Maxmlind db file path"
}
},
"type" : "object",
"description" : "Settings for connection to a maxmind db"
},
"otoroshi.next.plugins.NgLargeResponseFaultConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"additional_response_size" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
}
},
"otoroshi.models.LatencyInjectionFaultConfig" : {
"type" : "object",
"description" : "Settings for a latency injection fault (chaos engineering)",
"properties" : {
"ratio" : {
"type" : "number",
"format" : "double",
"description" : "The percentage of requests affected by this fault. Value should be between 0.0 and 1.0"
},
"from" : {
"type" : "number",
"description" : "The start range of latency added to the request"
},
"to" : {
"type" : "number",
"description" : "The end range of latency added to the request"
}
}
},
"otoroshi.plugins.oidc.OIDCAccessTokenAsApikey" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.NgIpAddressesConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"addresses" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.models.RSAKPAlgoSettings" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
}
},
"type" : "object",
"description" : "Settings to use RSA signing algorithm from a certificate keypair"
},
"otoroshi.next.plugins.BasicAuthCaller" : {
"type" : "object",
"description" : "???",
"properties" : {
"username" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"password" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"header_name" : {
"type" : "string",
"description" : "???"
},
"header_value_format" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.next.plugins.WasmBackend" : {
"type" : "object",
"description" : "???",
"properties" : {
"allowedHosts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"memoryPages" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"allowedPaths" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"instances" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"config" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"authorizations" : {
"description" : "???",
"properties" : {
"proxyStateAccess" : {
"type" : "boolean",
"description" : "???"
},
"httpAccess" : {
"type" : "boolean",
"description" : "???"
},
"globalMapAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"pluginDataStoreAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"pluginMapAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"proxyHttpCallTimeout" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"configurationAccess" : {
"type" : "boolean",
"description" : "???"
},
"globalDataStoreAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
}
},
"type" : "object"
},
"opa" : {
"type" : "boolean",
"description" : "???"
},
"wasi" : {
"type" : "boolean",
"description" : "???"
},
"functionName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.utils.mailer.MailerSettings" : {
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type" ]
}, {
"required" : [ "type", "url", "headers", "to" ]
}, {
"required" : [ "type", "eu", "apiKey", "domain", "to" ]
}, {
"required" : [ "type", "apiKeyPublic", "apiKeyPrivate", "to" ]
}, {
"required" : [ "type" ]
}, {
"required" : [ "type", "apiKey", "to" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of exporter",
"enum" : [ "elastic", "webhook", "kafka", "pulsar", "file", "mailer", "custom", "console", "metrics" ]
},
"url" : {
"type" : "string",
"description" : "Sender URL"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Sender headers"
},
"to" : {
"type" : "array",
"items" : {
"properties" : {
"name" : {
"type" : "string",
"description" : "Destination name"
},
"email" : {
"type" : "string",
"description" : "Email address"
}
},
"type" : "object"
},
"description" : "Destination email address"
},
"eu" : {
"type" : "boolean",
"description" : "European tenant"
},
"apiKey" : {
"type" : "string",
"description" : "Sendgrid apikey"
},
"domain" : {
"type" : "string",
"description" : "Mailgun domain"
},
"apiKeyPublic" : {
"type" : "string",
"description" : "Public key"
},
"apiKeyPrivate" : {
"type" : "string",
"description" : "Private key"
}
}
},
"otoroshi.auth.Oauth1ModuleConfig" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the type of the module",
"enum" : [ "saml", "oauth1", "oauth2", "ldap", "basic" ]
},
"accessTokenURL" : {
"type" : "string",
"description" : "???"
},
"desc" : {
"type" : "string",
"description" : "???"
},
"name" : {
"type" : "string",
"description" : "???"
},
"authorizeURL" : {
"type" : "string",
"description" : "???"
},
"rightsOverride" : {
"type" : "object",
"additionalProperties" : {
"properties" : {
"rights" : {
"type" : "array",
"items" : {
"properties" : {
"tenant" : {
"description" : "Access rights on organizations",
"properties" : {
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
}
},
"type" : "object"
},
"teams" : {
"type" : "array",
"items" : {
"properties" : {
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
}
},
"type" : "object"
},
"description" : "Access rights on teams"
}
},
"type" : "object"
},
"description" : "Access rights of a user"
}
},
"type" : "object"
},
"description" : "???"
},
"consumerKey" : {
"type" : "string",
"description" : "???"
},
"callbackURL" : {
"type" : "string",
"description" : "???"
},
"profileURL" : {
"type" : "string",
"description" : "???"
},
"clientSideSessionEnabled" : {
"type" : "boolean",
"description" : "???"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"sessionMaxAge" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"httpMethod" : {
"description" : "???",
"properties" : { },
"type" : "object"
},
"userValidators" : {
"type" : "array",
"items" : {
"properties" : {
"path" : {
"type" : "string",
"description" : "???"
},
"value" : {
"type" : "object",
"description" : "???"
},
"error" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"description" : "???"
},
"id" : {
"type" : "string",
"description" : "???"
},
"requestTokenURL" : {
"type" : "string",
"description" : "???"
},
"_loc" : {
"description" : "???",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"consumerSecret" : {
"type" : "string",
"description" : "???"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"sessionCookieValues" : {
"description" : "???",
"properties" : {
"httpOnly" : {
"type" : "boolean",
"description" : "???"
},
"secure" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
}
},
"type" : "object",
"description" : "???"
},
"otoroshi.next.plugins.NgJwtVerificationOnlyConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"verifier" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"fail_if_absent" : {
"type" : "boolean",
"description" : "???"
}
}
},
"otoroshi.next.plugins.JsonToXmlRequest" : {
"type" : "object",
"description" : "???",
"properties" : {
"filter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.plugins.defer.DeferPlugin" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.StaticResponse" : {
"type" : "object",
"description" : "???",
"properties" : {
"status" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"body" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.next.plugins.OverrideHost" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.NgPublicPrivatePathsConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"strict" : {
"type" : "boolean",
"description" : "???"
},
"public_patterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"private_patterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.models.InQueryParam" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of location",
"enum" : [ "InQueryParam", "InHeader", "InCookie" ]
},
"name" : {
"type" : "string",
"description" : "Query param name"
}
},
"type" : "object",
"description" : "JWT token location (query param)"
},
"otoroshi.plugins.clientcert.ClientCertChainHeader" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.plugins.security.SecurityTxt" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.models.EntityLocation" : {
"type" : "object",
"description" : "Location of any entity (teams and organization)",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
}
},
"otoroshi.next.plugins.RoutingRestrictions" : {
"type" : "object",
"description" : "???",
"properties" : {
"allow_last" : {
"type" : "boolean",
"description" : "???"
},
"allowed" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"forbidden" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"not_found" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
}
}
},
"otoroshi.next.plugins.GlobalPerIpAddressThrottling" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.MissingMockResponsesException" : {
"type" : "object",
"description" : "???",
"properties" : {
"message" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgDiscoverySelfRegistrationTransformer" : {
"type" : "object",
"description" : "???",
"properties" : {
"raw" : {
"type" : "object",
"description" : "???"
}
}
},
"otoroshi.events.AuditEvent" : {
"type" : "object",
"description" : "Audit trail event"
},
"otoroshi.plugins.izanami.IzanamiProxy" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.models.ErrorTemplate" : {
"type" : "object",
"description" : "Service descriptor error template",
"properties" : {
"template50x" : {
"type" : "string",
"description" : "The 50x error html template"
},
"templateMaintenance" : {
"type" : "string",
"description" : "The maintenance html template"
},
"templateBuild" : {
"type" : "string",
"description" : "The build html template"
},
"serviceId" : {
"type" : "string",
"description" : "Service id for this template"
},
"_loc" : {
"description" : "???",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"messages" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Map of messages"
},
"name" : {
"type" : "string",
"description" : "???"
},
"template40x" : {
"type" : "string",
"description" : "The 40x error html template"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"description" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgLegacyApikeyCall" : {
"type" : "object",
"description" : "???",
"properties" : {
"public_patterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"private_patterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"config" : {
"description" : "???",
"properties" : {
"mandatory" : {
"type" : "boolean",
"description" : "???"
},
"extractors" : {
"description" : "???",
"properties" : {
"basic" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"header_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"query_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"custom_headers" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"client_id_header_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"client_secret_header_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"client_id" : {
"description" : "???",
"properties" : {
"header_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"query_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"enabled" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"jwt" : {
"description" : "???",
"properties" : {
"cookie_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"key_pair_signed" : {
"type" : "boolean",
"description" : "???"
},
"query_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"secret_signed" : {
"type" : "boolean",
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"include_request_attrs" : {
"type" : "boolean",
"description" : "???"
},
"header_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
}
},
"type" : "object"
},
"pass_with_user" : {
"type" : "boolean",
"description" : "???"
},
"wipe_backend_request" : {
"type" : "boolean",
"description" : "???"
},
"validate" : {
"type" : "boolean",
"description" : "???"
},
"routing" : {
"description" : "???",
"properties" : {
"none_meta_keys_in" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"all_meta_keys_in" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"all_meta_in" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"none_meta_in" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"one_tag_in" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"one_meta_in" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"all_tags_in" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"one_meta_key_in" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"none_tag_in" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"update_quotas" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
}
}
},
"otoroshi.utils.mailer.NoneMailerSettings" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of exporter",
"enum" : [ "elastic", "webhook", "kafka", "pulsar", "file", "mailer", "custom", "console", "metrics" ]
}
},
"type" : "object",
"description" : "Settings for the /dev/null mailer"
},
"otoroshi.next.plugins.MockField" : {
"type" : "object",
"description" : "???",
"properties" : {
"field_name" : {
"type" : "string",
"description" : "???"
},
"field_type" : {
"type" : "string",
"description" : "???"
},
"value" : {
"type" : "object",
"description" : "???"
}
}
},
"otoroshi.next.plugins.EndlessHttpResponse" : {
"type" : "object",
"description" : "???",
"properties" : {
"finger" : {
"type" : "boolean",
"description" : "???"
},
"addresses" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.models.SecComInfoTokenVersion" : {
"type" : "string",
"enum" : [ "Legacy", "Latest" ],
"description" : "Version of the info token"
},
"otoroshi.next.plugins.S3Backend" : {
"type" : "object",
"description" : "???",
"properties" : {
"writeEvery" : {
"type" : "number",
"description" : "???"
},
"chunkSize" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"bucket" : {
"type" : "string",
"description" : "???"
},
"key" : {
"type" : "string",
"description" : "???"
},
"endpoint" : {
"type" : "string",
"description" : "???"
},
"v4auth" : {
"type" : "boolean",
"description" : "???"
},
"access" : {
"type" : "string",
"description" : "???"
},
"secret" : {
"type" : "string",
"description" : "???"
},
"region" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.plugins.biscuit.BiscuitHelper" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"BulkPatchBody" : {
"type" : "object",
"description" : "BulkPatchBody object"
},
"otoroshi.next.plugins.FakeWasmContext" : {
"type" : "object",
"description" : "???",
"properties" : {
"config" : {
"type" : "object",
"description" : "???"
},
"idx" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
}
},
"otoroshi.next.plugins.W3CTracing" : {
"type" : "object",
"description" : "???",
"properties" : {
"kind" : {
"description" : "Configuration for W3CTracing",
"type" : "string",
"enum" : [ "jaeger", "zipkin", "logger", "noop" ]
},
"endpoint" : {
"type" : "string",
"description" : "???"
},
"timeout" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"baggage" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.next.models.NgSelectedBackendTarget" : {
"type" : "object",
"description" : "???",
"properties" : {
"target" : {
"description" : "???",
"properties" : {
"ip_address" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"protocol" : {
"type" : "string",
"enum" : [ "HTTP/1.0", "HTTP/1.1", "HTTP/2.0", "HTTP/3.0" ],
"description" : "Protocol for the target"
},
"predicate" : {
"description" : "Predicate to choose this target",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"dc" : {
"type" : "string",
"description" : "???"
},
"positions" : {
"type" : "array",
"items" : {
"properties" : {
"latitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"longitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"radius" : {
"type" : "number",
"format" : "double",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"provider" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataCenter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"rack" : {
"type" : "string",
"description" : "???"
},
"region" : {
"type" : "string",
"description" : "???"
},
"zone" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"tls_config" : {
"description" : "TLS settings to contact this target",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "Enabled"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
},
"loose" : {
"type" : "boolean",
"description" : "Loose verification"
},
"trust_all" : {
"type" : "boolean",
"description" : "Trust any certificate"
},
"trusted_certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
}
},
"type" : "object"
},
"tls" : {
"type" : "boolean",
"description" : "Does the target uses TLS"
},
"port" : {
"type" : "integer",
"format" : "int32",
"description" : "port of the target"
},
"id" : {
"type" : "string",
"description" : "id of the target"
},
"weight" : {
"type" : "integer",
"format" : "int32",
"description" : "The weight of the target when choosing"
},
"hostname" : {
"type" : "string",
"description" : "hostname of the target"
}
},
"type" : "object"
},
"attempts" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"cb_start" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
}
}
},
"otoroshi.next.plugins.WasmRequestHandler" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"GlobalConfigImportBody" : {
"type" : "object",
"description" : ""
},
"otoroshi.auth.AuthModuleConfig" : {
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "desc", "name", "clientSideSessionEnabled", "basicAuth", "tags", "users", "sessionMaxAge", "webauthn", "userValidators", "id", "_loc", "metadata", "sessionCookieValues" ]
}, {
"required" : [ "type", "extraMetadata", "desc", "name", "rightsOverride", "clientId", "otoroshiRightsField", "clientSideSessionEnabled", "scope", "tags", "accessTokenField", "superAdmins", "sessionMaxAge", "refreshTokens", "loginUrl", "apiKeyTagsField", "otoroshiDataField", "userValidators", "emailField", "mtlsConfig", "tokenUrl", "useCookie", "id", "pkce", "authorizeUrl", "_loc", "callbackUrl", "proxy", "apiKeyMetaField", "clientSecret", "useJson", "oidConfig", "claims", "metadata", "noWildcardRedirectURI", "nameField", "introspectionUrl", "logoutUrl", "dataOverride", "userInfoUrl", "jwtVerifier", "readProfileFromToken", "sessionCookieValues" ]
}, {
"required" : [ "type", "extraMetadata", "desc", "name", "allowEmptyPassword", "groupFilters", "rightsOverride", "serverUrls", "clientSideSessionEnabled", "basicAuth", "searchBase", "groupRights", "tags", "superAdmins", "sessionMaxAge", "metadataField", "searchFilter", "adminUsername", "userValidators", "emailField", "extractProfileFilter", "userBase", "id", "_loc", "adminPassword", "metadata", "extractProfileFilterNot", "nameField", "extractProfile", "dataOverride", "sessionCookieValues" ]
}, {
"required" : [ "type", "accessTokenURL", "desc", "name", "authorizeURL", "rightsOverride", "consumerKey", "callbackURL", "profileURL", "clientSideSessionEnabled", "tags", "sessionMaxAge", "httpMethod", "userValidators", "id", "requestTokenURL", "_loc", "consumerSecret", "metadata", "sessionCookieValues" ]
}, {
"required" : [ "type", "desc", "name", "ssoProtocolBinding", "clientSideSessionEnabled", "emailAttributeName", "validatingCertificates", "tags", "singleLogoutProtocolBinding", "sessionMaxAge", "issuer", "signature", "userValidators", "singleLogoutUrl", "id", "_loc", "usedNameIDAsEmail", "singleSignOnUrl", "metadata", "validateAssertions", "nameIDFormat", "validateSignature", "credentials", "sessionCookieValues" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the type of the module",
"enum" : [ "saml", "oauth1", "oauth2", "ldap", "basic" ]
},
"desc" : {
"type" : "string",
"description" : "???"
},
"name" : {
"type" : "string",
"description" : "???"
},
"clientSideSessionEnabled" : {
"type" : "boolean",
"description" : "???"
},
"basicAuth" : {
"type" : "boolean",
"description" : "???"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"users" : {
"type" : "array",
"items" : {
"properties" : {
"metadata" : {
"type" : "object",
"description" : "???"
},
"password" : {
"type" : "string",
"description" : "???"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"email" : {
"type" : "string",
"description" : "???"
},
"webauthn" : {
"description" : "???",
"type" : "object",
"properties" : {
"handle" : {
"type" : "string",
"description" : "???"
},
"credentials" : {
"type" : "object",
"additionalProperties" : {
"type" : "object"
},
"description" : "???"
}
}
},
"rights" : {
"description" : "???",
"properties" : {
"rights" : {
"type" : "array",
"items" : {
"properties" : {
"tenant" : {
"description" : "Access rights on organizations",
"properties" : {
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
}
},
"type" : "object"
},
"teams" : {
"type" : "array",
"items" : {
"properties" : {
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
}
},
"type" : "object"
},
"description" : "Access rights on teams"
}
},
"type" : "object"
},
"description" : "Access rights of a user"
}
},
"type" : "object"
},
"name" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"sessionMaxAge" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"webauthn" : {
"type" : "boolean",
"description" : "???"
},
"userValidators" : {
"type" : "array",
"items" : {
"properties" : {
"path" : {
"type" : "string",
"description" : "???"
},
"value" : {
"type" : "object",
"description" : "???"
},
"error" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"description" : "???"
},
"id" : {
"type" : "string",
"description" : "???"
},
"_loc" : {
"description" : "???",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"sessionCookieValues" : {
"description" : "???",
"properties" : {
"httpOnly" : {
"type" : "boolean",
"description" : "???"
},
"secure" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"extraMetadata" : {
"type" : "object",
"description" : "???"
},
"rightsOverride" : {
"type" : "object",
"additionalProperties" : {
"properties" : {
"rights" : {
"type" : "array",
"items" : {
"properties" : {
"tenant" : {
"description" : "Access rights on organizations",
"properties" : {
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
}
},
"type" : "object"
},
"teams" : {
"type" : "array",
"items" : {
"properties" : {
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
}
},
"type" : "object"
},
"description" : "Access rights on teams"
}
},
"type" : "object"
},
"description" : "Access rights of a user"
}
},
"type" : "object"
},
"description" : "???"
},
"clientId" : {
"type" : "string",
"description" : "???"
},
"otoroshiRightsField" : {
"type" : "string",
"description" : "???"
},
"scope" : {
"type" : "string",
"description" : "???"
},
"accessTokenField" : {
"type" : "string",
"description" : "???"
},
"superAdmins" : {
"type" : "boolean",
"description" : "???"
},
"refreshTokens" : {
"type" : "boolean",
"description" : "???"
},
"loginUrl" : {
"type" : "string",
"description" : "???"
},
"apiKeyTagsField" : {
"type" : "string",
"description" : "???"
},
"otoroshiDataField" : {
"type" : "string",
"description" : "???"
},
"emailField" : {
"type" : "string",
"description" : "???"
},
"mtlsConfig" : {
"description" : "???",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"tokenUrl" : {
"type" : "string",
"description" : "???"
},
"useCookie" : {
"type" : "boolean",
"description" : "???"
},
"pkce" : {
"description" : "???",
"type" : "object",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"algorithm" : {
"type" : "string",
"description" : "???"
}
}
},
"authorizeUrl" : {
"type" : "string",
"description" : "???"
},
"callbackUrl" : {
"type" : "string",
"description" : "???"
},
"proxy" : {
"description" : "???",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"apiKeyMetaField" : {
"type" : "string",
"description" : "???"
},
"clientSecret" : {
"type" : "string",
"description" : "???"
},
"useJson" : {
"type" : "boolean",
"description" : "???"
},
"oidConfig" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"claims" : {
"type" : "string",
"description" : "???"
},
"noWildcardRedirectURI" : {
"type" : "boolean",
"description" : "???"
},
"nameField" : {
"type" : "string",
"description" : "???"
},
"introspectionUrl" : {
"type" : "string",
"description" : "???"
},
"logoutUrl" : {
"type" : "string",
"description" : "???"
},
"dataOverride" : {
"type" : "object",
"additionalProperties" : {
"type" : "object"
},
"description" : "???"
},
"userInfoUrl" : {
"type" : "string",
"description" : "???"
},
"jwtVerifier" : {
"description" : "???",
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "size", "publicKey", "privateKey" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "secret", "base64" ]
}, {
"required" : [ "type", "url", "tlsConfig", "kty", "proxy", "headers", "ttl", "timeout" ]
}, {
"required" : [ "type", "onlyExposedCerts" ]
}, {
"required" : [ "type", "size", "certId" ]
}, {
"required" : [ "type", "size", "publicKey", "privateKey" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "SHA function size"
},
"publicKey" : {
"type" : "string",
"description" : "Public key (for verification)"
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"type" : "string",
"description" : "Certificate id"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
},
"url" : {
"type" : "string",
"description" : "JWKS url"
},
"tlsConfig" : {
"description" : "TLS config",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"kty" : {
"type" : "string",
"description" : "Key type"
},
"proxy" : {
"description" : "Web proxy for http client",
"type" : "object",
"properties" : {
"host" : {
"type" : "string",
"description" : "The hostname of the proxy server."
},
"port" : {
"type" : "string",
"description" : "The port of the proxy server."
},
"protocol" : {
"type" : "string",
"description" : "The protocol of the proxy server. Use \"http\" or \"https\". Defaults to \"http\" if not specified."
},
"principal" : {
"type" : "string",
"description" : "The principal (aka username) of the credentials for the proxy server."
},
"password" : {
"type" : "string",
"description" : "The password for the credentials for the proxy server."
},
"ntlmDomain" : {
"type" : "string",
"description" : "The ntlm domain for the proxy server."
},
"encoding" : {
"type" : "string",
"description" : "The realm's charset."
},
"nonProxyHosts" : {
"type" : "string",
"description" : "The non proxied hosts"
}
}
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Http header when fetching JWKS"
},
"ttl" : {
"type" : "number",
"description" : "Cache ttl"
},
"timeout" : {
"type" : "number",
"description" : "Timeout when fetching JWKS"
},
"onlyExposedCerts" : {
"type" : "boolean",
"description" : "Use only exposed certs"
}
}
},
"readProfileFromToken" : {
"type" : "boolean",
"description" : "???"
},
"allowEmptyPassword" : {
"type" : "boolean",
"description" : "???"
},
"groupFilters" : {
"type" : "array",
"items" : {
"properties" : {
"group" : {
"type" : "string",
"description" : "???"
},
"tenant" : {
"description" : "???",
"properties" : {
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
}
},
"type" : "object"
},
"team" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"serverUrls" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"searchBase" : {
"type" : "string",
"description" : "???"
},
"groupRights" : {
"type" : "object",
"additionalProperties" : {
"properties" : {
"userRights" : {
"description" : "???",
"properties" : {
"rights" : {
"type" : "array",
"items" : {
"properties" : {
"tenant" : {
"description" : "Access rights on organizations",
"properties" : {
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
}
},
"type" : "object"
},
"teams" : {
"type" : "array",
"items" : {
"properties" : {
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
}
},
"type" : "object"
},
"description" : "Access rights on teams"
}
},
"type" : "object"
},
"description" : "Access rights of a user"
}
},
"type" : "object"
},
"users" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"metadataField" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"searchFilter" : {
"type" : "string",
"description" : "???"
},
"adminUsername" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"extractProfileFilter" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"userBase" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"adminPassword" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"extractProfileFilterNot" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"extractProfile" : {
"type" : "boolean",
"description" : "???"
},
"accessTokenURL" : {
"type" : "string",
"description" : "???"
},
"authorizeURL" : {
"type" : "string",
"description" : "???"
},
"consumerKey" : {
"type" : "string",
"description" : "???"
},
"callbackURL" : {
"type" : "string",
"description" : "???"
},
"profileURL" : {
"type" : "string",
"description" : "???"
},
"httpMethod" : {
"description" : "???",
"properties" : { },
"type" : "object"
},
"requestTokenURL" : {
"type" : "string",
"description" : "???"
},
"consumerSecret" : {
"type" : "string",
"description" : "???"
},
"ssoProtocolBinding" : {
"description" : "???",
"properties" : { },
"type" : "object"
},
"emailAttributeName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"validatingCertificates" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"singleLogoutProtocolBinding" : {
"description" : "???",
"properties" : { },
"type" : "object"
},
"issuer" : {
"type" : "string",
"description" : "???"
},
"signature" : {
"description" : "???",
"properties" : {
"algorithm" : {
"description" : "???",
"properties" : { },
"type" : "object"
},
"canocalizationMethod" : {
"description" : "???",
"properties" : { },
"type" : "object"
}
},
"type" : "object"
},
"singleLogoutUrl" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"usedNameIDAsEmail" : {
"type" : "boolean",
"description" : "???"
},
"singleSignOnUrl" : {
"type" : "string",
"description" : "???"
},
"validateAssertions" : {
"type" : "boolean",
"description" : "???"
},
"nameIDFormat" : {
"description" : "???",
"properties" : { },
"type" : "object"
},
"validateSignature" : {
"type" : "boolean",
"description" : "???"
},
"credentials" : {
"description" : "???",
"properties" : {
"signingKey" : {
"description" : "???",
"properties" : {
"certificate" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"useOtoroshiCertificate" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"encryptionKey" : {
"description" : "???",
"properties" : {
"certificate" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"useOtoroshiCertificate" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"signedDocuments" : {
"type" : "boolean",
"description" : "???"
},
"encryptedAssertions" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
}
}
},
"otoroshi.next.plugins.Robots" : {
"type" : "object",
"description" : "???",
"properties" : {
"robot_txt_content" : {
"type" : "string",
"description" : "???"
},
"meta_content" : {
"type" : "string",
"description" : "???"
},
"robot_enabled" : {
"type" : "boolean",
"description" : "???"
},
"header_content" : {
"type" : "string",
"description" : "???"
},
"header_enabled" : {
"type" : "boolean",
"description" : "???"
},
"meta_enabled" : {
"type" : "boolean",
"description" : "???"
}
}
},
"otoroshi.next.plugins.ExternalEurekaTargetConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"service_url_default_zone" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"eureka_app" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.utils.mailer.GenericMailerSettings" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of exporter",
"enum" : [ "elastic", "webhook", "kafka", "pulsar", "file", "mailer", "custom", "console", "metrics" ]
},
"url" : {
"type" : "string",
"description" : "Sender URL"
},
"headers" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Sender headers"
},
"to" : {
"type" : "array",
"items" : {
"properties" : {
"name" : {
"type" : "string",
"description" : "Destination name"
},
"email" : {
"type" : "string",
"description" : "Email address"
}
},
"type" : "object"
},
"description" : "Destination email address"
}
},
"type" : "object",
"description" : "Settings for the generic mailer (http requests)"
},
"otoroshi.models.GoReplayFileSettings" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of exporter",
"enum" : [ "elastic", "webhook", "kafka", "pulsar", "file", "mailer", "custom", "console", "metrics" ]
},
"path" : {
"type" : "string",
"description" : "???"
},
"methods" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"captureResponses" : {
"type" : "boolean",
"description" : "???"
},
"preferBackendResponse" : {
"type" : "boolean",
"description" : "???"
},
"maxFileSize" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"captureRequests" : {
"type" : "boolean",
"description" : "???"
},
"preferBackendRequest" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object",
"description" : "???"
},
"Null" : {
"type" : "object",
"description" : "no value object, used to represent a None option value"
},
"otoroshi.next.plugins.NgApikeyExtractors" : {
"type" : "object",
"description" : "???",
"properties" : {
"basic" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"header_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"query_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"custom_headers" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"client_id_header_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"client_secret_header_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"client_id" : {
"description" : "???",
"properties" : {
"header_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"query_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"enabled" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"jwt" : {
"description" : "???",
"properties" : {
"cookie_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"key_pair_signed" : {
"type" : "boolean",
"description" : "???"
},
"query_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"secret_signed" : {
"type" : "boolean",
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"include_request_attrs" : {
"type" : "boolean",
"description" : "???"
},
"header_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
}
}
},
"TargetsList" : {
"type" : "array",
"items" : {
"properties" : {
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"host" : {
"type" : "string",
"description" : "???"
},
"weight" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"protocol" : {
"type" : "string",
"enum" : [ "HTTP/1.0", "HTTP/1.1", "HTTP/2.0", "HTTP/3.0" ],
"description" : "???"
},
"predicate" : {
"description" : "???",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"dc" : {
"type" : "string",
"description" : "???"
},
"positions" : {
"type" : "array",
"items" : {
"properties" : {
"latitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"longitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"radius" : {
"type" : "number",
"format" : "double",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"provider" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataCenter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"rack" : {
"type" : "string",
"description" : "???"
},
"region" : {
"type" : "string",
"description" : "???"
},
"zone" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"ipAddress" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"mtlsConfig" : {
"description" : "???",
"properties" : {
"mtls" : {
"type" : "boolean",
"description" : "???"
},
"loose" : {
"type" : "boolean",
"description" : "???"
},
"trustAll" : {
"type" : "boolean",
"description" : "???"
},
"trustedCerts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"scheme" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
}
},
"otoroshi.auth.Credential" : {
"type" : "object",
"description" : "???",
"properties" : {
"certificate" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"privateKey" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"certId" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"useOtoroshiCertificate" : {
"type" : "boolean",
"description" : "???"
}
}
},
"otoroshi.next.plugins.Http3Switch" : {
"type" : "object",
"description" : "???",
"properties" : {
"ma" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"domain" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"protocols" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgCertificateAsApikeyConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"daily_quota" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"monthly_quota" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"read_only" : {
"type" : "boolean",
"description" : "???"
},
"allow_client_id_only" : {
"type" : "boolean",
"description" : "???"
},
"throttling_quota" : {
"type" : "integer",
"format" : "int64",
"description" : "???"
},
"constrained_services_only" : {
"type" : "boolean",
"description" : "???"
}
}
},
"otoroshi.next.plugins.NgRedirectionSettings" : {
"type" : "object",
"description" : "???",
"properties" : {
"code" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"to" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.models.WebAuthnOtoroshiAdmin" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of admin",
"enum" : [ "simple", "webauthn" ]
},
"username" : {
"type" : "string",
"description" : "User username"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Entity tags"
},
"label" : {
"type" : "string",
"description" : "User label"
},
"_loc" : {
"description" : "Entity location",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"typ" : {
"description" : "Admin kind",
"type" : "string",
"enum" : [ "SIMPLE", "WEBAUTHN" ]
},
"createdAt" : {
"type" : "number",
"description" : "User creation date"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Entity metadata"
},
"rights" : {
"description" : "User rights",
"properties" : {
"rights" : {
"type" : "array",
"items" : {
"properties" : {
"tenant" : {
"description" : "Access rights on organizations",
"properties" : {
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
}
},
"type" : "object"
},
"teams" : {
"type" : "array",
"items" : {
"properties" : {
"canRead" : {
"type" : "boolean",
"description" : "Can this access right read data"
},
"value" : {
"type" : "string",
"description" : "Access pattern"
},
"canWrite" : {
"type" : "boolean",
"description" : "Can this access right write data"
}
},
"type" : "object"
},
"description" : "Access rights on teams"
}
},
"type" : "object"
},
"description" : "Access rights of a user"
}
},
"type" : "object"
},
"credentials" : {
"type" : "object",
"additionalProperties" : {
"type" : "object"
},
"description" : "User webauthn credentials"
},
"handle" : {
"type" : "string",
"description" : "User webauthn handle"
},
"password" : {
"type" : "string",
"description" : "User password"
}
},
"type" : "object",
"description" : "An otoroshi admin user that uses webauthn at login"
},
"otoroshi.next.plugins.TailscaleCertError" : {
"type" : "object",
"description" : "???",
"properties" : {
"status" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"body" : {
"type" : "string",
"description" : "???"
}
}
},
"otoroshi.plugins.jobs.kubernetes.OtoroshiToKubernetesCertSyncJob" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.plugins.biscuit.BiscuitExtractor" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"PatchBody" : {
"type" : "array",
"items" : { }
},
"otoroshi.next.plugins.PreRoutingVerifierContext" : {
"type" : "object",
"description" : "???",
"properties" : {
"ctx" : {
"description" : "???",
"properties" : { },
"type" : "object"
},
"apk" : {
"description" : "???",
"properties" : {
"dailyQuota" : {
"type" : "integer",
"format" : "int64",
"description" : "Authorized number of calls per day"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "Bunch of metadata for the key"
},
"throttlingQuota" : {
"type" : "integer",
"format" : "int64",
"description" : "Authorized number of calls per second, measured on 10 seconds"
},
"constrainedServicesOnly" : {
"type" : "boolean",
"description" : "This apikey can only be used on services that constrained their apikey routing"
},
"allowClientIdOnly" : {
"type" : "boolean",
"description" : "This apikey can be used juste with the client_id value"
},
"_loc" : {
"description" : "The location of the apikey",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
},
"restrictions" : {
"description" : "Apikey restrictions settings",
"properties" : {
"forbidden" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"allowed" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"notFound" : {
"type" : "array",
"items" : {
"properties" : {
"method" : {
"type" : "string",
"description" : "???"
},
"path" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"allowLast" : {
"type" : "boolean",
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"tags" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Apikey tags"
},
"enabled" : {
"type" : "boolean",
"description" : "Whether or not the key is enabled. If disabled, resources won't be available to calls using this key"
},
"readOnly" : {
"type" : "boolean",
"description" : "The apikey only allow access for GET, HEAD and OPTIONS verbs"
},
"clientSecret" : {
"type" : "string",
"description" : "The secret of the Api Key. Usually 64 random alpha numerical characters, but can be anything"
},
"validUntil" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"clientName" : {
"type" : "string",
"description" : "The name of the api key, for humans ;-)"
},
"monthlyQuota" : {
"type" : "integer",
"format" : "int64",
"description" : "Authorized number of calls per month"
},
"description" : {
"type" : "string",
"description" : "Description of this apikey"
},
"rotation" : {
"description" : "Apikey rotation settings",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "Rotation enabled"
},
"rotationEvery" : {
"type" : "integer",
"format" : "int64",
"description" : "Rotate every n hours"
},
"gracePeriod" : {
"type" : "integer",
"format" : "int64",
"description" : "period (in hours) during which both secrets works"
},
"nextSecret" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"authorizedEntities" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "The group/service ids (prefixed by group_ or service_ on which the key is authorized"
},
"clientId" : {
"type" : "string",
"description" : "The unique id of the Api Key. Usually 16 random alpha numerical characters, but can be anything"
}
},
"type" : "object"
}
}
},
"otoroshi.plugins.jobs.kubernetes.OtoAnnotationConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"annotations" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
}
}
},
"otoroshi.plugins.accesslog.AccessLog" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.models.DataCenterMatch" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"dc" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object",
"description" : "???"
},
"otoroshi.next.plugins.NgLegacyAuthModuleCall" : {
"type" : "object",
"description" : "???",
"properties" : {
"public_patterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"private_patterns" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"config" : {
"description" : "???",
"properties" : {
"module" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"pass_with_apikey" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
}
}
},
"otoroshi.models.JwtTokenLocation" : {
"type" : "object",
"oneOfConstraints" : [ {
"required" : [ "type", "name" ]
}, {
"required" : [ "type", "name", "remove" ]
}, {
"required" : [ "type", "name" ]
} ],
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of location",
"enum" : [ "InQueryParam", "InHeader", "InCookie" ]
},
"name" : {
"type" : "string",
"description" : "Query param name"
},
"remove" : {
"type" : "string",
"description" : "Remove from value"
}
}
},
"otoroshi.models.FakeEntityLocationSupport" : {
"type" : "object",
"description" : "???",
"properties" : {
"_loc" : {
"description" : "???",
"properties" : {
"tenant" : {
"description" : "Organization of the current entity",
"type" : "string"
},
"teams" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Teams of the current entity"
}
},
"type" : "object"
}
}
},
"otoroshi.next.plugins.WasmAccessValidator" : {
"type" : "object",
"description" : "???",
"properties" : {
"allowedHosts" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"memoryPages" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"allowedPaths" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"instances" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"config" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"authorizations" : {
"description" : "???",
"properties" : {
"proxyStateAccess" : {
"type" : "boolean",
"description" : "???"
},
"httpAccess" : {
"type" : "boolean",
"description" : "???"
},
"globalMapAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"pluginDataStoreAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"pluginMapAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"proxyHttpCallTimeout" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"configurationAccess" : {
"type" : "boolean",
"description" : "???"
},
"globalDataStoreAccess" : {
"description" : "???",
"properties" : {
"read" : {
"type" : "boolean",
"description" : "???"
},
"write" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
}
},
"type" : "object"
},
"opa" : {
"type" : "boolean",
"description" : "???"
},
"wasi" : {
"type" : "boolean",
"description" : "???"
},
"functionName" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
}
},
"otoroshi.models.HSAlgoSettings" : {
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of algosettings",
"enum" : [ "HSAlgoSettings", "RSAlgoSettings", "ESAlgoSettings", "JWKSAlgoSettings", "RSAKPAlgoSettings", "ESKPAlgoSettings", "KidAlgoSettings" ]
},
"size" : {
"type" : "integer",
"format" : "int32",
"description" : "Size for SHA function"
},
"secret" : {
"type" : "string",
"description" : "HMAC secret"
},
"base64" : {
"type" : "boolean",
"description" : "The secret is base64 encoded"
}
},
"type" : "object",
"description" : "Settings to use HMAC-SHA signing algorithm"
},
"otoroshi.next.models.NgTarget" : {
"type" : "object",
"description" : "A target where incoming requests will be forwarded",
"properties" : {
"ip_address" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"protocol" : {
"type" : "string",
"enum" : [ "HTTP/1.0", "HTTP/1.1", "HTTP/2.0", "HTTP/3.0" ],
"description" : "Protocol for the target"
},
"predicate" : {
"description" : "Predicate to choose this target",
"properties" : {
"type" : {
"type" : "string",
"description" : "the kind of predicate",
"enum" : [ "AlwaysMatch", "NetworkLocationMatch", "GeolocationMatch" ]
},
"dc" : {
"type" : "string",
"description" : "???"
},
"positions" : {
"type" : "array",
"items" : {
"properties" : {
"latitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"longitude" : {
"type" : "number",
"format" : "double",
"description" : "???"
},
"radius" : {
"type" : "number",
"format" : "double",
"description" : "???"
}
},
"type" : "object"
},
"description" : "???"
},
"provider" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"dataCenter" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"rack" : {
"type" : "string",
"description" : "???"
},
"region" : {
"type" : "string",
"description" : "???"
},
"zone" : {
"type" : "string",
"description" : "???"
}
},
"type" : "object"
},
"tls_config" : {
"description" : "TLS settings to contact this target",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "Enabled"
},
"certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
},
"loose" : {
"type" : "boolean",
"description" : "Loose verification"
},
"trust_all" : {
"type" : "boolean",
"description" : "Trust any certificate"
},
"trusted_certs" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "Trusted cert. ids"
}
},
"type" : "object"
},
"tls" : {
"type" : "boolean",
"description" : "Does the target uses TLS"
},
"port" : {
"type" : "integer",
"format" : "int32",
"description" : "port of the target"
},
"id" : {
"type" : "string",
"description" : "id of the target"
},
"weight" : {
"type" : "integer",
"format" : "int32",
"description" : "The weight of the target when choosing"
},
"hostname" : {
"type" : "string",
"description" : "hostname of the target"
}
}
},
"otoroshi.models.UserAgentSettings" : {
"type" : "object",
"description" : "Settings to extract informations about user agent (for otoroshi events)",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "User agent extraction enabled"
}
}
},
"otoroshi.greenscore.TripleBounds" : {
"type" : "object",
"description" : "???",
"properties" : {
"excellent" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"sufficient" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
},
"poor" : {
"type" : "integer",
"format" : "int32",
"description" : "???"
}
}
},
"otoroshi.plugins.useragent.UserAgentHelper" : {
"type" : "object",
"description" : "???",
"properties" : { }
},
"otoroshi.next.plugins.NgApikeyCallsConfig" : {
"type" : "object",
"description" : "???",
"properties" : {
"mandatory" : {
"type" : "boolean",
"description" : "???"
},
"extractors" : {
"description" : "???",
"properties" : {
"basic" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"header_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"query_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"custom_headers" : {
"description" : "???",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"client_id_header_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"client_secret_header_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
},
"client_id" : {
"description" : "???",
"properties" : {
"header_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"query_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"enabled" : {
"type" : "boolean",
"description" : "???"
}
},
"type" : "object"
},
"jwt" : {
"description" : "???",
"properties" : {
"cookie_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"key_pair_signed" : {
"type" : "boolean",
"description" : "???"
},
"query_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
},
"secret_signed" : {
"type" : "boolean",
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"include_request_attrs" : {
"type" : "boolean",
"description" : "???"
},
"header_name" : {
"description" : "null type",
"type" : "string",
"nullable" : true
}
},
"type" : "object"
}
},
"type" : "object"
},
"pass_with_user" : {
"type" : "boolean",
"description" : "???"
},
"wipe_backend_request" : {
"type" : "boolean",
"description" : "???"
},
"validate" : {
"type" : "boolean",
"description" : "???"
},
"routing" : {
"description" : "???",
"properties" : {
"none_meta_keys_in" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"all_meta_keys_in" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"all_meta_in" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"none_meta_in" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"one_tag_in" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"enabled" : {
"type" : "boolean",
"description" : "???"
},
"one_meta_in" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
},
"description" : "???"
},
"all_tags_in" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"one_meta_key_in" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
},
"none_tag_in" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "???"
}
},
"type" : "object"
},
"update_quotas" : {
"type" : "boolean",
"description" : "???"
}
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy